使用 Dockerfile 封装镜像时务必注意一些细节不要出错,例如其中的 ADD 命令,在镜像封装过程中即使出错,过程也不会因此中断或者提示,这样很难发现其实已经出错以及难以定位出错的位置,会浪费很多时间。例如:

ADD tomcat.ini /etc/supervisord.d/tomcat.ini
ADD tomcat.ini /etc/supervisor.d/tomcat.ini

通常 Linux 下的应用对应的服务名称以及配置文件名称,常常比应用的名称多一个消息字母 d ,例如上面两段代码只差了一个字母 d ,不仔细观察很难发现,即使过后检查也很难发现。再比如 ssh 和它的服务进程 sshd ,http 和它的服务进程 httpd 。

同时这个问题也是一个警示:任何用于生产环境的 docker 镜像在封装完成后必须启动一个容器进行验证,验证方式包括但不限于:

  1. 进入容器中,对比 Dockfile 查看应用安装、文件配置、进程运行、环境变量等是否全部正常;
  2. 从外部访问容器内部署的应用例如 http 或者 ssh 看这些服务是否正常运行。

逆熵流
10 声望5 粉丝

终身学习,向上生长~