对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