1、準備工作
獲取Ubuntu鏡像暖哨,并創(chuàng)建一個容器
docker pull docker.io/ubuntu
docker run -it --name baseubuntu ubuntu:latest
2滚婉、安裝和配置ssh服務(進入容器)
①更新下apt-get
root@b3e5f92e6dde:/# apt-get update
②安裝SSH服務,選擇主流的openssh-server作為服務端
root@b3e5f92e6dde:/# apt-get -y install openssh-server
③如果需要正常啟動SSH服務卫漫,必須要有/var/run/sshd目錄存在
root@b3e5f92e6dde:/# mkdir -p /var/run/sshd
root@b3e5f92e6dde:/# /usr/sbin/sshd -D & //&代表后臺執(zhí)行,不加的話一直處于ssh的狀態(tài)
④此時查看容器的22端口(SSH服務默認監(jiān)聽的端口)肾砂,已處于監(jiān)聽狀態(tài)
root@b3e5f92e6dde:/# netstat -tunlp
//如果提示沒有netstat命令的先安裝下
root@b3e5f92e6dde:/# apt-get install net-tools
image.png
⑤取消UsePAM登錄限制,設置UsePAM no
root@b3e5f92e6dde:/# vi /etc/ssh/sshd_config
image.png
⑥可另起一窗口(或退出容器)列赎,配置在宿主機配置需要的公鑰信息
[testerZ@azeng ~]$ ssh-keygen -t rsa
[testerZ@azeng ~]$ cat ~/.ssh/id_rsa.pub //復制公鑰
⑦在root下創(chuàng)建.ssh目錄,將上一步驟得到的公鑰復制到/root/.ssh/authorized_kesy中
root@b3e5f92e6dde:/# mkdir -p /root/.ssh/
root@b3e5f92e6dde:/# vi /root/.ssh/authorized_keys
⑧創(chuàng)建啟動自動SSH服務的文件,并設置權限
root@b3e5f92e6dde:/# vi /run.sh
//以下為內容
#!/bin/bash
/usr/sbin/sshd -D
root@b3e5f92e6dde:/# chomd +x run.sh
⑨docker commit生成新的鏡像
[testerZ@azeng ~]$ docker commit b3e5f92e6dde my_sshd:ubuntu
3镐确、使用鏡像包吝,通過ssh登錄容器
[testerZ@azeng ~]$ docker run -p 10022:22 -d my_sshd:ubuntu /run.sh
[testerZ@azeng ~]$ ssh localhost -p 10022
Enter passphrase for key '/home/testerZ/.ssh/id_rsa': //輸入之前設置公鑰時的密碼
//root用戶登錄,或者在第⑤設置時源葫,設置PermitRootLogin yes
[testerZ@azeng ~]$ ssh root@localhost -p 10022