Docker開啟遠程連接,本地IDEA使用docker插件連接(不認證的版本和認證的版本都有)


前言

在學校學習的時候,要部署一個Java程序,一般是打成war包,放到服務器上的tomcat的webapp里面去;
后來SpringBoot出現內置了tomcat,就直接打成jar包,丟到服務器任何一個目錄,只要服務器上安裝了Java即可;
Docker出現以后,可以通過編寫Dockerfile將jar包和Java環境集成到一個鏡像里面,更加方便了;
在公司則是使用持續部署和持續集成,通過在gitlab上設置webhook觸發k8s來拉取代碼自己編譯部署集成。

技術一直在發展,越來越自動化,使用越來越簡單,我輩之幸~~

在個人學習過程中,需要部署程序,推薦使用上面第三條,部署起來更加方便;最近了解到第三條部署方式的改進版,
可以在idea安裝docker和編寫Dockerfile文件,開啟遠程docker的遠程連接,使用idea本地docker插件連接到遠程docker,這樣就省去了
還要手動將jar包丟到服務器上用docker build構建鏡像的過程,算是方便了很多。。。

當然,本文討論的不是部署方式,而是如何開啟docker遠程連接,docker遠程連接分兩種,一種是不用認證的,只要修改了docker的配置並
讓配置生效就可以連接了,另外一種稍微復雜一些,需要自行生成CA證書,服務器公鑰,客戶端公鑰等等。

不用認證的版本

開啟docker遠程連接

  • 修改docker.service文件

vi /usr/lib/systemd/system/docker.service

找到ExecStart在后面追加以下內容

-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

需要注意的是,我這里配置的端口是2376,這是因為docker一般的遠程連接端口是2375,由於我使用的是雲服務器,怕被人利用來挖礦。。。雖然可能作用也不大~

另外,如果使用國內的雲服務器,比如阿里雲或者騰訊雲,還需要去雲服務器控制台配置安全組,把2376端口給暴露出來

重啟docker讓配置生效

systemctl daemon-reload systemctl restart docker

查看docker是否正常啟動
systemctl status docker

本地連接演示

  • idea下載好docker插件

  • 配置docker連接

我上面的ip隨便寫的,看官寫上自己的ip即可。

配置好后,下方會出現連接成功字樣

如果連接失敗,則需要仔細檢查下ip和端口是否正確

  • 查看鏡像和容器
    idea安裝好docker插件后,slidebar上可以打開docker

就是中間這個Service,我不知道為什么叫這個名字,看別人很多博主的就叫docker

    • 點擊連接
    • 查看鏡像和容器
    • 甚至還可以創建容器和啟動容器

推薦文章

一鍵部署 Spring Boot 到遠程 Docker 容器,就是這么秀!

需要認證的版本

生成CA證書及服務器公鑰等

看了很多博文,這部分相對比較散亂一些,有一個博主根據其他博主的文章寫了個腳本,並且寫了很多注釋,非常感謝!!!

我也是使用的該博主的腳本,稍稍改了下變量,下面是我使用的腳本,不知道為什么把腳本拷到博客園這邊就不對,只好放在簡書上面了
創建docker ca證書及服務器公鑰腳本

  • 保存腳本到create_tls_certs.sh文件中,並把該腳本移動到/etc/docker目錄中執行
    sh create_tls_certs.sh

  • 查看生成的證書和秘鑰文件

修改配置文件開啟docker遠程連接及添加認證

vi /usr/lib/systemd/system/docker.service

除了添加開啟遠程連接

-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

還要指定CA證書和公鑰地址
--tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem

重啟docker讓配置生效

systemctl daemon-reload systemctl restart docker

將證書及秘鑰下載到本地

下載ca.pem,cert.pem和key.pem三個文件到本地

本地連接演示

  • 指定下載的證書和秘鑰的目錄

注意我這里是使用的https://hello:2376,這個hello是我在生成證書的腳本中配置的

還需要配置本機的hosts

連接成功后的操作就和上面講的不需要認證的操作一樣~

推薦文章

Centos7 Docker配置TLS認證的遠程端口的證書生成教程(shell腳本一鍵生成)
centos7為docker配置遠程TLS驗證,端口設定為2376
centos7 docker開啟認證的遠程端口2376配置教程
Docker 遠程連接 -- dockerd 命令詳解
Docker開啟遠程訪問(非認證模式)

618推薦

【騰訊雲】618雲聚惠,百款雲產品限量搶購,1核2G雲服務器首年95元
https://cloud.tencent.com/act/cps/redirect?redirect=1059&cps_key=4af64fef8b27cbf2ed77ea881690abbd&from=console


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM