這篇文章將為大家詳細(xì)講解有關(guān)如何在docker容器中調(diào)用宿主機(jī)的docker,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)是一家專業(yè)提供宜川企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、HTML5建站、小程序制作等業(yè)務(wù)。10年已為宜川眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。首先說一下,如何在docker中執(zhí)行宿主機(jī)的docker操作,我們管它叫docker in docker。
至于為什么要在docker中操作宿主機(jī)的docker,優(yōu)點(diǎn)不言而喻,你既可以將你的具體需求容器化部署,又不用直接在宿主機(jī)上安裝(假設(shè)我們沒有辦法在docker中操作宿主機(jī)的docker,那么我們只能將這樣的軟件程序直接安裝到宿主機(jī)上,這樣顯然是不利于管理和維護(hù)的)。
實(shí)現(xiàn)這種需求,其實(shí)非常簡單,你只需要將docker宿主機(jī)的docker文件和docker.sock文件掛載到容器中即可,具體為:
-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/bin/docker:/usr/bin/docker
你要先找到你宿主機(jī)的docker和docker.sock位置,別掛載錯(cuò)了,標(biāo)準(zhǔn)的Linux正常來說就是上面的位置。
你在啟動(dòng)docker容器的時(shí)候,將上述兩個(gè)文件正常掛載后,就可以在docker中執(zhí)行諸如 docker images 等等這樣的命令了。
如果出現(xiàn)問題 permission denied
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
…………………………………………………………
dial unix /var/run/docker.sock: connect: permission denied
解決方法
在容器所在的宿主機(jī)上直接給 docker.sock 777權(quán)限,命令 chmod 777 docker.sock
華麗麗的分割線
下面是針對(duì)群輝系統(tǒng),你不用太關(guān)心這個(gè)系統(tǒng)是什么,總之就是這個(gè)系統(tǒng)在docker方面有一些特有的問題,導(dǎo)致你不能這么隨心所欲,所以我采用了一種變通的方法來處理(一種思路,拋磚引玉)先敘述一下現(xiàn)狀:
該系統(tǒng)提供了docker的UI管理工具,我們?cè)谶@個(gè)工具上可以進(jìn)行常規(guī)的掛載操作,但是如果我們想掛載上面的docker和docker.sock文件,就不行了,先看一下截圖:
說一下圖上UI操作的局限性!
群輝官方進(jìn)行了限制,你可以選擇的文件,是不可能選擇到 /usr/ /va/ 等這樣系統(tǒng)層面的文件的,也就是我們無法直接掛載docker和docker.sock文件。
做 ln -s 軟連接是否可行?
經(jīng)嘗試,先通過ssh命令行在jenkins文件夾中創(chuàng)建2個(gè)軟連接(將docker和docker.sock進(jìn)行軟連接),然后回到群輝的UI界面,依然不能選擇(因?yàn)槿狠x直接屏蔽了軟連接文件,你是看不到的)
那么如何解決呢?
我的方法是(軟連接的方法變通一下):
1、在圖上的jenkins目錄下隨便創(chuàng)建2個(gè)文件 docker 和 docker.sock 文件(命名正確即可)
2、然后在docker點(diǎn)擊“添加文件”按鈕,正常選擇這2個(gè)文件,進(jìn)行掛載,你完全可以正常掛載并且完成其他配置,配置完畢后,暫時(shí)不要啟動(dòng)docker容器。
3、登錄ssh進(jìn)入群輝,將jenkins目錄中剛剛創(chuàng)建的2個(gè)文件刪除掉,然后把docker和docker.sock源文件創(chuàng)建軟連接到j(luò)enkins中。
root@test:cd /volume1/docker/jenkins/ root@test:rm -rf docker docker.sock root@test:ln -s /run/docker.sock /volume1/docker/jenkins/docker.sock root@test:ln -s /usr/local/bin/docker /volume1/docker/jenkins/docker root@test:/volume1/docker/jenkins# ll total 8 drwxrwxrwx+ 1 Nuggets users 96 Jun 6 11:22 . drwxr-xr-x+ 1 root root 188 May 30 19:29 .. lrwxrwxrwx 1 root root 21 Jun 6 11:22 docker -> /usr/local/bin/docker lrwxrwxrwx 1 root root 16 Jun 6 11:21 docker.sock -> /run/docker.sock drwxrwxrwx+ 1 shanhongyu users 24 Jun 1 11:07 java_home drwxrwxrwx+ 1 Nuggets users 4476 Jun 6 11:00 jenkins_home drwxrwxrwx+ 1 shanhongyu users 82 Jun 1 11:12 maven_home
新聞名稱:如何在docker容器中調(diào)用宿主機(jī)的docker-創(chuàng)新互聯(lián)
URL地址:http://jinyejixie.com/article40/cceiho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、App設(shè)計(jì)、網(wǎng)站排名、響應(yīng)式網(wǎng)站、微信小程序、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容