在Linux上配置容器安全需要从主机层、容器运行时、镜像安全、网络隔离、权限控制等多方面进行加固。以下是详细的配置方案:
bash
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # RHEL/CentOS
bash
# 修改/etc/docker/daemon.json
{
"userns-remap": "default"
}
cgroups
限制容器CPU、内存等资源。
bash
docker run --cpus=2 --memory=1g nginx
--privileged
参数。
bash
docker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE nginx
runc
为更安全的gVisor
或Kata Containers
。bash
docker run --runtime=runsc nginx
bash
docker run --security-opt seccomp=/path/to/profile.json nginx
bash
docker run --security-opt apparmor=my-profile nginx
bash
docker run --security-opt label=type:container_t nginx
bash
docker scan nginx:latest
Alpine
等轻量基础镜像。curl
、bash
)。bash
docker trust inspect --pretty nginx:latest
22
、6379
)。
bash
docker run -p 8080:80 nginx # 仅暴露必要端口
bash
docker network create my_network
docker run --network=my_network nginx
NetworkPolicy
)。bash
docker run --user 1000:1000 nginx
bash
docker run --read-only nginx
bash
docker run -v /etc:/etc:ro nginx
bash
docker run --log-driver=syslog nginx
bash
sudo auditctl -w /var/lib/docker -k docker_audit
cAdvisor
、Prometheus
监控容器行为。bash
docker system prune -af
bash
# 修改/etc/docker/daemon.json
{
"hosts": ["unix:///var/run/docker.sock"],
"tls": true
}
通过以上措施,可以显著提升Linux容器的安全性,但需根据实际场景调整策略。安全是一个持续过程,建议结合自动化工具定期审计。