erwewwewe 发表于 2017-3-16 14:05:01

用dockerfile创建支持ssh服务的centos镜像

参考
1 我在/docker/目录下建立了个脚本是用来启动容器上面的ssh服务的


1
2
3
vi run.sh
#!/bin/bash
/usr/sbin/sshd -D




2 同样在docker目录下创建dockefile文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# cat /docker/dockerfile
FROM centos
RUN yum install passwd openssl openssh-server -y
##下面三行是解决sshd服务启动时报错的
RUN ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
RUN ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key-N ''
##下面这行是更改配置文件sshd_config
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
ADD run.sh /usr/local/sbin/run.sh
RUN chmod 755 /usr/local/sbin/run.sh
##设置root密码
RUN echo "root:123456"|chpasswd
EXPOSE 22
##启动ssh服务
CMD ["/usr/local/sbin/run.sh"]




3 创建镜像 (我在docker目录下执行的)
docker build -t ssh_centos .
注意命令最后面是一个”.”,这说明Dockerfile是在当前目录下。
如果执行成功最后会显示Successfully的字样
4 查看你生成的镜像

docker images
5 用新的镜像创建容器
docker run -itd -P ssh_centos /usr/local/sbin/run.sh## -P随机生成映射端口
也可以指定端口
docker run -d -p 10022:22 ssh_centos /usr/local/sbin/run.sh
6 最后验证(在宿主机上面)
ssh root@localhost -p 32777

如果成功连接上就成功了!

页: [1]
查看完整版本: 用dockerfile创建支持ssh服务的centos镜像