用ssh連線docker容器
阿新 • • 發佈:2020-08-22
- 拉取映象,這裡採用centos:7作為基礎映象
docker pull centos:7
- 執行映象,生成容器
docker run -d --name ssh_box --privileged=true centos:7 /usr/sbin/init
07228ec257564c4874ca24216d651bda65573d49e4149064a079cacca27de4e1 # 生成的容器ID
--name 給新生成的容器命名
--privileged=true 給容器訪問Linux核心特權,後面要訪問systemctl
返回一串容器ID表示容器生成成功
3. 進入剛剛生成的容器
docker exec -it 07228ec25756 /bin/bash
- 進入容器後,使用passwd密碼來修改密碼(如提示沒有這個命令列使用yum install passwd安裝)
passwd
4.安裝vim和Openssh(docker 容器中執行)
yum install vim openssh-server openssh-clients -y
5.修改SSH配置檔案
vim /etc/ssh/sshd_config
PubkeyAuthentication yes #啟用公鑰私鑰配對認證方式 AuthorizedKeysFile .ssh/authorized_keys #公鑰檔案路徑(和上面生成的檔案同) PermitRootLogin yes #root能使用ssh登入 ClientAliveInterval 60 #引數數值是秒 , 是指超時時間 ClientAliveCountMax 3 #設定允許超時的次數
- 重啟ssh服務,並設定開機啟動
systemctl restart sshd.service
systemctl enable sshd.service
Failed to get D-Bus connection: Operation not permitted
這裡如果報這個錯誤說明容器許可權不足,第2步執行有誤
7.退出容器並儲存更改
exit - 用剛才生成的容器建立映象
docker commit -m 'openssh' -a 'Docker for ssh' ffe81683c404 ssh_box
-m:來指定提交的說明資訊,跟我們使用的版本控制工具一樣
-a 可以指定更新的使用者資訊
ffe81683c404: 建立映象的容器的ID,就是上面的容器id,也就是我們剛才進入的容器id
ssh_box: 目標映象的倉庫名
docker images可以檢視到新生成的映象
- 用新生成的映象啟動新的容器並打通22埠
docker run -d -p 2222:22 ssh_box /usr/sbin/sshd -D
10.然後可以使用xshell連線新生成的容器
ip: 為宿主主機的ip,而不是docker容器的ip
埠:就是上面的2222
使用者名稱: root
密碼: 就是上面password部分設定的密碼
在mac上可通過ssh root@ip -p:2222 登入新生成的容器
參考文章
Docker容器使用問題:Failed to get D-Bus connection: Operation not permitted
ssh 直接登入docker容器