学习优先级:★★★★★
易用性:★★★☆☆
在 docker-compose.yml 文件中显式设置安全相关配置非常重要,这有助于避免安全漏洞并为容器的运行提供明确的指导。
以下是一个示例,展示了如何在 docker-compose.yml 文件中设置安全相关配置,以确保容器在安全的条件下运行。
示例代码
version: '3.8'
services:
web:
image: nginx
ports:
- "80:80"
restart: always # 容器自动重启
environment:
- NGINX_HOST=localhost
- NGINX_PORT=80
networks:
- frontend
security_opt:
- no-new-privileges:true # 禁止在容器内获得新权限
read_only: true # 将容器文件系统设置为只读
cap_drop:
- ALL # 删除所有不必要的权限
networks:
frontend:
driver: bridge
执行结果
运行此配置后,容器将在名为 "frontend" 的网络中启动。Web 服务器可在端口 80 上访问。安全措施如 "no-new-privileges" 和 "read_only" 已启用。
security_opt: no-new-privileges:true防止容器内的进程获得新权限,即使容器被入侵。read_only: true确保容器的文件系统为只读,这是一项额外的安全措施。cap_drop: ALL删除容器的所有不必要的权限,以减少潜在的攻击面。
补充说明
Docker 提供了多种安全功能,可以显著限制容器环境。通过使用 read_only 或删除不必要的权限等选项,可以大幅减少攻击面。这些功能基于 Linux 内核的机制,例如隔离进程和资源的能力。