這篇文章將為大家詳細講解有關如何在docker容器中調用宿主機的docker,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
創新互聯是一家專業提供宜川企業網站建設,專注與成都網站制作、網站設計、外貿網站建設、HTML5建站、小程序制作等業務。10年已為宜川眾多企業、政府機構等服務。創新互聯專業網站設計公司優惠進行中。首先說一下,如何在docker中執行宿主機的docker操作,我們管它叫docker in docker。
至于為什么要在docker中操作宿主機的docker,優點不言而喻,你既可以將你的具體需求容器化部署,又不用直接在宿主機上安裝(假設我們沒有辦法在docker中操作宿主機的docker,那么我們只能將這樣的軟件程序直接安裝到宿主機上,這樣顯然是不利于管理和維護的)。
實現這種需求,其實非常簡單,你只需要將docker宿主機的docker文件和docker.sock文件掛載到容器中即可,具體為:
-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/bin/docker:/usr/bin/docker
你要先找到你宿主機的docker和docker.sock位置,別掛載錯了,標準的Linux正常來說就是上面的位置。
你在啟動docker容器的時候,將上述兩個文件正常掛載后,就可以在docker中執行諸如 docker images 等等這樣的命令了。
如果出現問題 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
解決方法
在容器所在的宿主機上直接給 docker.sock 777權限,命令 chmod 777 docker.sock
華麗麗的分割線
下面是針對群輝系統,你不用太關心這個系統是什么,總之就是這個系統在docker方面有一些特有的問題,導致你不能這么隨心所欲,所以我采用了一種變通的方法來處理(一種思路,拋磚引玉)先敘述一下現狀:
該系統提供了docker的UI管理工具,我們在這個工具上可以進行常規的掛載操作,但是如果我們想掛載上面的docker和docker.sock文件,就不行了,先看一下截圖:
說一下圖上UI操作的局限性!
群輝官方進行了限制,你可以選擇的文件,是不可能選擇到 /usr/ /va/ 等這樣系統層面的文件的,也就是我們無法直接掛載docker和docker.sock文件。
做 ln -s 軟連接是否可行?
經嘗試,先通過ssh命令行在jenkins文件夾中創建2個軟連接(將docker和docker.sock進行軟連接),然后回到群輝的UI界面,依然不能選擇(因為群輝直接屏蔽了軟連接文件,你是看不到的)
那么如何解決呢?
我的方法是(軟連接的方法變通一下):
1、在圖上的jenkins目錄下隨便創建2個文件 docker 和 docker.sock 文件(命名正確即可)
2、然后在docker點擊“添加文件”按鈕,正常選擇這2個文件,進行掛載,你完全可以正常掛載并且完成其他配置,配置完畢后,暫時不要啟動docker容器。
3、登錄ssh進入群輝,將jenkins目錄中剛剛創建的2個文件刪除掉,然后把docker和docker.sock源文件創建軟連接到jenkins中。
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容器中調用宿主機的docker-創新互聯
URL地址:http://vcdvsql.cn/article40/cceiho.html
成都網站建設公司_創新互聯,為您提供建站公司、App設計、網站排名、響應式網站、微信小程序、品牌網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯