Dockerfile安全
Dockerfile是包含用于组合镜像命令的文本文件,一般由基础镜像信息(FROM)、维护者信息(MAINTAINER)、镜像操作指令(RUN、ADD、COPY等)和容器启动时执行指令(CMD等)四个部分组成,Docker可通过读取Dockerfile中的命令创建容器镜像。Dockefile文件是提供给用户的参考样例文件,用户在此基础上修改后,需要注意Dockerfile中安装第三方软件的安全问题。
- 用户请勿在容器内开启ssh服务。
- 在容器内使用非root用户运行。
- 仅授予用户必要的capability,避免高权限用户造成容器逃逸等安全风险。
- 将容器端口绑定到所需主机端口上特定的主机接口。
- 建议手动开启AppArmor或者SELinux加固容器运行。
- 经常扫描和重建镜像, 及时加入安全补丁。
- 确认Dockerfile中ADD操作的文件为可信文件。
- 不在Dockerfile中存储敏感信息。
- 在镜像内加入健康检测。
- 不要单独或者在单行命令中使用update更新指令。
- 建议添加一个“--read-only”标志,使容器的根文件系统以只读方式挂载,可以与容器卷组合使用,强制容器的进程只写入将被持久化的位置。例如:
docker run --interactive --tty --read-only --volume /centdata centos /bin/bash
这将运行具有只读根文件系统的容器,并将使用‘centdata’作为写操作的容器卷。
- 建议容器使用单独的磁盘分区,避免耗尽主机的磁盘空间,导致系统异常。
父主题: 容器安全加固