Docker使用Dockerfile创建支持ssh服务自启动的容器镜像

阅读更多
1、创建一个Dockerfile文件,文件内容如下
# 选择一个已有的os镜像作为基础
FROM centos6:6.7

# 镜像的作者
MAINTAINER jinzhaokang "[email protected]"

# 安装openssh-server和sudo软件包,并且将sshd的UsePAM参数设置成no
RUN yum install -y openssh-server sudo
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config

RUN echo "root:1234567" | chpasswd

# 下面这两句比较特殊,在centos6上必须要有,否则创建出来的容器sshd不能登录
#将基础镜像的/etc/ssh/目录下的ssh_host_rsa_key  ssh_host_rsa_key.pub
#和ssh_host_dsa_key  ssh_host_dsa_key.pub 删除或者下面的不执行
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

# 启动sshd服务并且暴露22端口
RUN mkdir /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]



2、根据Dockerfile来创建image,在Dockerfile所在的目录运行如下命令
docker build -t centos6-ssh .
docker images


3、根据创建出来的image文件启动容器,命名为“test”
docker run -d -P --name=test centos6-ssh


4、查看容器IP地址,并SSH
docker inspect test
ssh 容器IP


5、进入容器安装SSH、vim等辅助工具
[root@a6c64ffd4f5a soft]yum -y install openssh-clients vim

你可能感兴趣的:(ssh)