用dockerfile建立支持ssh服務的centos鏡像

參考 docker

1 我在/docker/目錄下創建了個腳本是用來啓動容器上面的ssh服務的
centos

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

2 一樣在docker目錄下建立dockefile文件以下:bash

[root@localhost sbin]# 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目錄下執行的)ssh

docker build -t ssh_centos .ide

注意命令最後面是一個」.」,這說明Dockerfile是在當前目錄下。 ui

若是執行成功最後會顯示Successfully的字樣spa

4 查看你生成的鏡像
server

docker p_w_picpathsxml

5 用新的鏡像建立容器ssl

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

若是成功鏈接上就成功了!

相關文章
相關標籤/搜索