使用Dockerfile创建支持ssh服务自启动的容器镜像。
基础镜像:centos:7.2.1511
#docker pull centos:7.2.1511 #拉去基础镜像
#docker history centos:7.2.1511 #查看基础镜像的架构层次
构建文本Dockerfile内容
FROM centos:7.2.1511
MAINTAINER Fanbin Kong "hqh546020152@sina.com"
RUN yum install -y openssh-server sudo && yum clean all
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN useradd admin && echo "admin:admin" | chpasswd && echo "admin ALL=(ALL) ALL" >> /etc/sudoers
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN mkdir /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
---------------------------------------------------------------------------------------------------------------------------------------
#docker build -t centos:7.2.v2 . #执行生产新的镜像
#sudo docker run -d -P --name=mytest centos:7.2.v2
#docker ps #PORTS:0.0.0.0:32768->22/tcp查看使用到的端口
#netstat -antp #检查32768端口是否被占用
#docker inspect mytest #查看生成容器所使用的IP
---------------------------------------------------------------------------------------------------------------------------------------
下载、安装相关软件后及时清除缓存与安装包的重要性:
V2 版本为构建的第一层时没使用 yum clean all
V3 版本为构建的第一层时使用了 yum clean all
两者实现的功能完全一样,都由于及时清除当前层的缓存。两者相差80M。
以上结构图可对比我们的dockerfile文本,可观察到对应镜像每一层的构建。
网友评论