Docker開(kāi)啟遠(yuǎn)程訪問(wèn)的實(shí)現(xiàn)方式
Docker守護(hù)進(jìn)程可以通過(guò)三種不同類(lèi)型的套接字監(jiān)聽(tīng)Docker Engine API請(qǐng)求:unix、tcp和fd。
默認(rèn)情況下,在/var/run/docker.sock處創(chuàng)建一個(gè)unix域套接字(或IPC套接字),需要root權(quán)限或docker組成員身份。
如果需要遠(yuǎn)程訪問(wèn)Docker守護(hù)進(jìn)程,則需要啟用tcp套接字。請(qǐng)注意,默認(rèn)設(shè)置提供了對(duì)Docker守護(hù)進(jìn)程的未加密和未經(jīng)身份驗(yàn)證的直接訪問(wèn),應(yīng)該使用內(nèi)置的HTTPS加密套接字或在其前面放置一個(gè)安全的web代理來(lái)進(jìn)行保護(hù)。你可以使用-H tcp://0.0.0.0:2375監(jiān)聽(tīng)所有網(wǎng)絡(luò)接口上的2375端口,或使用其IP地址-H tcp://ip:2375監(jiān)聽(tīng)特定網(wǎng)絡(luò)接口上的2375端口。通常使用端口2375與守護(hù)進(jìn)程進(jìn)行非加密通信,使用端口2376與守護(hù)進(jìn)程進(jìn)行加密通信。
注意:如果你使用的是HTTPS加密的套接字,請(qǐng)記住,僅支持TLS1.0及更高版本。出于安全原因,SSLv3及以下版本的協(xié)議不再受支持。
修改docker.servicevim /usr/lib/systemd/system/docker.service
在[Service]部分,修改ExecStart參數(shù),在最后增加-H tcp://0.0.0.0:2375,監(jiān)聽(tīng)所有網(wǎng)絡(luò)接口上的2375端口。
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
重新加載配置文件和啟動(dòng)服務(wù)
systemctl daemon-reload && systemctl restart docker daemon-reload: 重新加載服務(wù)的配置文件,要是服務(wù)的配置文件發(fā)生變化,則需要重新加載 restart:重新啟動(dòng)服務(wù)。
查看dockerd進(jìn)程是否正在監(jiān)聽(tīng)2375端口:
[root@izoq008ryseuupz ~]# netstat -antp | grep dockerdtcp6 0 0 :::2375 :::* LISTEN 22494/dockerd
netstat命令用于顯示網(wǎng)絡(luò)狀態(tài),部分選項(xiàng)的作用如下:
-a或--all:顯示所有連線中的Socket。 -n或--numeric:直接使用IP地址,而不通過(guò)域名服務(wù)器。 -t或--tcp:顯示TCP傳輸協(xié)議的連線狀況。 -p或--programs:顯示正在使用Socket的程序識(shí)別碼和程序名稱(chēng)。測(cè)試接下來(lái)測(cè)試一下通過(guò)localhost是否能使用Docker Engine API。
[root@izoq008ryseuupz ~]# curl http://localhost:2375/version{'Platform':{'Name':'Docker Engine - Community'},'Components':[{'Name':'Engine','Version':'19.03.13','Details':{'ApiVersion':'1.40','Arch':'amd64','BuildTime':'2020-09-16T17:02:21.000000000+00:00','Experimental':'false','GitCommit':'4484c46d9d','GoVersion':'go1.13.15','KernelVersion':'3.10.0-514.26.2.el7.x86_64','MinAPIVersion':'1.12','Os':'linux'}},{'Name':'containerd','Version':'1.3.7','Details':{'GitCommit':'8fba4e9a7d01810a393d5d25a3621dc101981175'}},{'Name':'runc','Version':'1.0.0-rc10','Details':{'GitCommit':'dc9208a3303feef5b3839f4323d9beb36df0a9dd'}},{'Name':'docker-init','Version':'0.18.0','Details':{'GitCommit':'fec3683'}}],'Version':'19.03.13','ApiVersion':'1.40','MinAPIVersion':'1.12','GitCommit':'4484c46d9d','GoVersion':'go1.13.15','Os':'linux','Arch':'amd64','KernelVersion':'3.10.0-514.26.2.el7.x86_64','BuildTime':'2020-09-16T17:02:21.000000000+00:00'}
curl是常用的命令行工具,用來(lái)請(qǐng)求Web服務(wù)器。不帶任何參數(shù)時(shí),curl發(fā)出GET請(qǐng)求。
很顯然可以通過(guò)localhost使用Docker Engine API。
再來(lái)測(cè)試一下遠(yuǎn)程通過(guò)主機(jī)IP能否使用Docker Engine API,請(qǐng)求http://ip:2375/version得到的頁(yè)面如下圖所示,很顯然是可以的。
IDEA也是可以進(jìn)行遠(yuǎn)程連接的。
可能的問(wèn)題
如果遠(yuǎn)程訪問(wèn)不了,可能需要設(shè)置一下服務(wù)器的防火墻,應(yīng)該是2375端口沒(méi)有暴露出去,所以遠(yuǎn)程訪問(wèn)不了,博主是阿里云的服務(wù)器(Centos7.3)。
到此這篇關(guān)于Docker開(kāi)啟遠(yuǎn)程訪問(wèn)的實(shí)現(xiàn)方式的文章就介紹到這了,更多相關(guān)Docker 遠(yuǎn)程訪問(wèn)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. PHP循環(huán)與分支知識(shí)點(diǎn)梳理2. JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能3. 利用FastReport傳遞圖片參數(shù)在報(bào)表上展示簽名信息的實(shí)現(xiàn)方法4. JavaWeb Servlet中url-pattern的使用5. Ajax請(qǐng)求超時(shí)與網(wǎng)絡(luò)異常處理圖文詳解6. jsp實(shí)現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫(kù)的方法7. jsp EL表達(dá)式詳解8. chat.asp聊天程序的編寫(xiě)方法9. JSP之表單提交get和post的區(qū)別詳解及實(shí)例10. jsp cookie+session實(shí)現(xiàn)簡(jiǎn)易自動(dòng)登錄
