写正文之前先分享几个 Docker 的几个常见面试问题!
-
如何批量清理临时镜像文件?
答:可以使用sudo docker rmi $(sudo docker images -q -f dangling = true)
命令 -
如何查看镜像支持的环境变量?
答:可以使用sudo docker run IMAGE env
命令 -
本地的镜像文件都存放在哪里?
答:与 Docker 相关的本地资源都存放在/var/lib/docker/
目录下,其中container
目录存放容器信息,graph
目录存放镜像信息,aufs
目录下存放具体的镜像层文件。 -
构建 Docker 镜像应该遵循哪些原则?
答:整体原则上,尽量保持镜像功能的明确与内容的精简,要点包括:
- 尽量选取满足需求但较小的基础系统镜像,例如大部分时候可以选择
debian:wheezy
镜像,仅有85 MB大小。 - 清理编译生成文件、安装包的缓存等临时文件。
- 安装各个软件时候要指定准确的版本号,并避免引入不需要的依赖。
- 从安全角度考虑,应用要尽量使用系统的库和依赖。
- 如果安装应用时候需要配置一些特殊的环境变量,在安装后要还原不需要保持的变量值。
- 使用
Dockerfile
创建镜像时候要添加.d