對centos鏡像進行開啓ssh操作打包成新的鏡像,使用dockerfile如下:
FROM centos
MAINTAINER Sam
RUN yum -y update
RUN yum install -y passwd openssh-server openssh-clients initscripts net-tool
RUN yum install python-setuptools -y
RUN easy_install supervisor
RUN echo 'root:root' | chpasswd
RUN /usr/sbin/sshd-keygen
EXPOSE 22
CMD /usr/sbin/sshd -D
其中執行到net-tools會報錯,導致無法正常打包。因此,先將基礎鏡像centos部署成容器,再進入容器依次執行RUN裏面的命令。之後使用docker commit命令將該容器打包成新鏡像,命令如下:
# 格式:
docker commit -a "<作者>" -m "<字符串消息>" <容器ID> <新鏡像名>:<版本號>
得到新鏡像後,還有兩條命令沒執行,於是將原dockerfile修改爲如下:
FROM centos-pre
MAINTAINER Sam
EXPOSE 22
CMD /usr/sbin/sshd -D
注意,這裏面from是自己新打包的鏡像,之後再用docker build命令即可完成鏡像打包工作。
這裏面用到了製作鏡像的兩種方式:
1、通過容器打包鏡像docker commit
2、通過鏡像打包鏡像docker build