本篇內(nèi)容介紹了“docker進(jìn)入容器內(nèi)部的常用命令”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計,有關(guān)成都定制網(wǎng)站方案、改版、費用等問題,行業(yè)涉及成都混凝土攪拌機等多個領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。
一、使用docker attach進(jìn)入
Docker提供了attach命令來進(jìn)入Docker容器。我們創(chuàng)建一個守護(hù)態(tài)的Docker容器,然后使用docker attach命令進(jìn)入該容器。
$ sudo docker run -itd ubuntu:14.04 /bin/bash
然后我們使用docker ps查看到該容器信息,接下來就使用docker attach進(jìn)入該容器
$ sudo docker attach 44fc0f0582d9
可以看到我們已經(jīng)進(jìn)入到該容器中了。
但使用該命令有一個問題。當(dāng)多個窗口同時使用該命令進(jìn)入該容器時,所有的窗口都會同步顯示。如果有一個窗口阻塞了,那么其他窗口也無法再進(jìn)行操作。因此,docker attach命令不太適合于生產(chǎn)環(huán)境,平時自己開發(fā)應(yīng)用時可以使用該命令。
二、使用nsenter進(jìn)入Docker容器
使用nsenter進(jìn)入Docker容器。了解什么是nsenter后,系統(tǒng)默認(rèn)將我們需要的nsenter安裝到主機中。具體的安裝命令如下:
$ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz $ tar -xzvf util-linux-2.24.tar.gz $ cd util-linux-2.24/ $ ./configure --without-ncurses $ make nsenter $ sudo cp nsenter /usr/local/bin
安裝好nsenter之后可以查看一下該命令的使用。nsenter可以訪問另一個進(jìn)程的名稱空間。所以為了連接到某個容器,我們還需要獲取該容器的第一個進(jìn)程的PID。可以使用docker inspect命令來拿到該PID。
$ sudo docker inspect --help
inspect命令可以分層級顯示一個鏡像或容器的信息。比如,我們當(dāng)前有一個正在運行的容器,可以使用docker inspect來查看該容器的詳細(xì)信息。
$ sudo docker inspect 44fc0f0582d9
如果要顯示該容器第一個進(jìn)行的PID可以使用如下方式
$ sudo docker inspect -f {{.State.Pid}} 44fc0f0582d9
在拿到該進(jìn)程PID之后我們就可以使用nsenter命令訪問該容器了。
$ sudo nsenter --target 3326 --mount --uts --ipc --net --pid $ sudo nsenter --target 3326 --mount --uts --ipc --net --pid
其中的3326即剛才拿到的進(jìn)程的PID
三、使用docker exec進(jìn)入
docker在1.3.X版本之后還提供了一個新的命令exec用于進(jìn)入容器,這種方式相對更簡單一些
$ sudo docker exec --help
接下來我們使用該命令進(jìn)入一個已經(jīng)在運行的容器
$ sudo docker ps $ sudo docker exec -it 775c7c9ee1e1 /bin/bash
“docker進(jìn)入容器內(nèi)部的常用命令”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!