Docker 容器開啓ssh登錄

參考原帖https://www.cnyunwei.cc/archives/456

上一文中已經介紹了docker的安裝和容器的創建等,但是創建出來的容器只能通過宿主機進行登錄,有時候還是希望直接通過SSH 登錄到docker容器中進行一些修改,其實非常簡單,只需要將容器中ssh端口映射到宿主機,然後在容器中安裝openssh 服務即可。

1.創建容器時指定映射的端口

docker run -it --name centos6.8 -p 2222:22 6bdbedefc4d1
[root@myaliyun ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
c51dfb838b52        6bdbedefc4d1        "/bin/bash"         About an hour ago   Up About an hour    0.0.0.0:2222->22/tcp   centos6.8  

另外在宿主機上也是可以看到對應的端口是否被docker容器監聽了

netstat -tunlp
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:2222                0.0.0.0:*                   LISTEN      5277/docker-proxy   

2.登錄容器中,修改root密碼,安裝openssh服務

docker exec -it centos6.8 /bin/bash
[root@c51dfb838b52 ~]#passwd    #修改容器中centos系統ROOT賬戶的密碼
[root@c51dfb838b52 ~]#yum -y install openssh*    #安裝openssh服務
[root@c51dfb838b52 ~]#service sshd start

3.宿主機添加端口放行

iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
service iptables save

原帖只到這一步,發現服務器會拒絕訪問,卡在last login提示。所以還要進行以下步驟:

4.修改容器/etc/ssh/sshd_config

vi /etc/ssh/sshd_config 
PermitRootLogin yes  #允許root用戶ssh登錄
UsePAM no            ##禁用PAM

最後保存,重啓。

service sshd restart

測試登錄。

提示我已經從所在的電信網關訪問,成功。

爲了方便以後使用,可以將這個開啓了ssh登錄的容器保存爲鏡像

docker commit c51dfb838b52 centos_6.8_ssh   #容器ID  創建的鏡像名
docker images   #可以看到該鏡像已經創建成功,下次需要新建容器時可直接使用該鏡像

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章