Docker容器實現(xiàn)SSH遠程直連
在某些特殊需求下,我們想ssh直接遠程連接docker 容器,下面我們介紹結合cpolar工具實現(xiàn)ssh遠程直接連接docker容器
1. 下載docker鏡像
本文下載一個tomcat鏡像為例子,輸入命令拉取tomcat鏡像:
docker pull tomcat
我們下載的是tomcat鏡像,tomcat端口容器內(nèi)部默認是8080,我們把tomcat容器內(nèi)部端口映射到宿主機的8088端口上,運行鏡像容器,
docker run -it -d -p8088:8080 tomcat /bin/bash
運行后查看一下正在運行的容器
docker ps -a
可以看到已經(jīng)運行了,同時也看到了容器ID

2. 安裝ssh服務
進入容器
docker exec -it 容器ID /bin/bash
進入容器后,我們安裝ssh服務,首先更新包管理器
apt-get update
安裝ssh服務
apt-get install openssh-server
安裝文件編輯器 vim
apt-get install vim
設置SSH登錄密碼,第一次是設置密碼,第二次是確認密碼,輸入兩次
passwd
修改配置文件
vim /etc/ssh/sshd_config
需要修改兩個地方:
第一:把ssh 服務默認的22端口設置為與容器服務的端口一致,如我們是tomcat容器,就設置為8080,因為我們運行容器的時候掛載的是內(nèi)部的8080端口映射到宿主機的8088端口,所以需要和容器內(nèi)部端口保持一致,
第二:將 PermitRootLogin prohibit-password 修改為 PermitRootLogin yes ,開啟使用密碼登錄,設置完成后保存退出

修改完成后,重啟ssh服務
service ssh restart
3. 本地局域網(wǎng)測試
上面我們設置完成了在容器內(nèi)部安裝了ssh服務,現(xiàn)在進行局域網(wǎng)測試連接,用戶名默認是root,端口號這里需要輸入我們映射到宿主機的8088端口
ssh -p 8088 root@192.168.10.125
登錄過程中需要輸入密碼,即上面設置的密碼,成功后,可以看到我們成功進入了容器內(nèi)部

4. 安裝cpolar
安裝cpolar我們在宿主機安裝,不需要進入容器內(nèi)部安裝
使用一鍵腳本安裝命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
向系統(tǒng)添加服務
sudo systemctl enable cpolar
啟動cpolar服務
sudo systemctl start cpolar
5. 配置公網(wǎng)訪問地址
成功啟動cpolar服務后,我們在瀏覽器上訪問Linux局域網(wǎng)ip地址+9200端口,登錄cpolar web UI管理界面。
cpolar官網(wǎng)地址: https://www.cpolar.com
登錄成功后,點擊左側(cè)儀表盤的隧道管理——創(chuàng)建隧道:
隧道名稱:可自定義,注意不要與已有的隧道名稱重復協(xié)議:tcp本地地址:8088域名類型:臨時隨機TCP端口地區(qū):選擇China VIP
點擊 創(chuàng)建

然后打開左側(cè)在線隧道列表,查看剛剛創(chuàng)建隧道后生成的tcp連接的公網(wǎng)地址

6. SSH公網(wǎng)遠程連接測試
使用ssh 命令行連接模式,注意,-p后面的端口是cpolar中生成的公網(wǎng)地址對應的端口
ssh -p 端口 root@公網(wǎng)地址
執(zhí)行后,我們可以看到成功進入容器,這樣ssh 遠程直接連接docker容器就設置好了

7.固定連接公網(wǎng)地址
要注意的是,以上步驟使用的是隨機臨時tcp端口地址,所生成的公網(wǎng)地址為隨機臨時地址,該公網(wǎng)地址24小時內(nèi)會隨機變化。我們接下來為其配置固定的TCP端口地址,該地址不會變化,設置后將無需每天重復修改地址。
配置固定tcp端口地址需要將cpolar升級到專業(yè)版套餐或以上。
保留一個固定tcp地址
登錄cpolar官網(wǎng),點擊左側(cè)的預留,找到保留的tcp地址,我們來為我的世界保留一個固定tcp地址:
地區(qū):選擇China vip描述:即備注,可自定義
點擊 保留

地址保留成功后,系統(tǒng)會生成相應的固定公網(wǎng)地址,將其復制下來

打開cpolar web ui管理界面,點擊左側(cè)儀表盤的隧道管理——隧道列表,找到我們上面創(chuàng)建的TCP隧道,點擊右側(cè)的 編輯

修改隧道信息,將保留成功的固定tcp地址配置到隧道中
端口類型:修改為固定tcp端口預留的tcp地址:填寫官網(wǎng)保留成功的地址,
點擊 更新

隧道更新成功后,點擊左側(cè)儀表盤的狀態(tài)——在線隧道列表,可以看到公網(wǎng)地址已經(jīng)更新成為了固定tcp地址。

8. SSH固定地址連接測試
輸入ssh 連接命令,使用我們上面的公網(wǎng)地址和端口,我們可以看到,連接成功,固定ssh遠程直接連接docker容器就設置好了

到此這篇關于Docker容器實現(xiàn)SSH遠程直連的文章就介紹到這了,更多相關Docker SSH遠程直連內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
docker容器設置本地時間和本地時區(qū)的實現(xiàn)方法
Docker容器通過-eTZ設置時區(qū),但部分程序如cron依賴本地時間文件,需手動修改/etc/localtime軟鏈接指向正確時區(qū),下面就來具體介紹一下,感興趣的可以了解一下2025-07-07
Docker安裝redis并且設置密碼,以及進入容器修改密碼方式
這篇文章主要介紹了Docker安裝redis并且設置密碼,以及進入容器修改密碼方式,2024-01-01
Docker + Nginx 實現(xiàn) Java 服務零停機發(fā)布并解決發(fā)布
本文介紹了一種低成本實現(xiàn)SpringBoot服務零停機發(fā)布的方案,通過雙實例兜底和Nginx自動重試機制解決傳統(tǒng)部署中的502問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2026-04-04
docker環(huán)境調(diào)用mysqldump進行數(shù)據(jù)備份方式
這篇文章主要介紹了docker環(huán)境調(diào)用mysqldump進行數(shù)據(jù)備份方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-06-06

