Docker兩種方式進入后台運行的容器


1、在啟動容器的時候,有時候我們加了參數-d,這時容器自動進入后台運行。如果我們要進入容器,該怎么辦?通常使用docker attach命令和nsenter工具。

2、docker attach是Docker自帶的命令。

$ docker run -idt centos
$ docker ps
$ docker attach 9b930d9d1e20
$ docker attach cocky_carson


該命令有時候並不方便,因為他是同步的,若有多個用戶attach到一個容器,一個窗口命令阻塞,其他窗口都無法執行。

3、nsenter命令:在util-linux包2.23版本后都有自帶包含。nsenter可以訪問另一個進程的名字空間。

是否安裝nsenter,通過nsenter --version查看。

a.安裝nsenter

$ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz
$ tar -zxvf util-linux-2.24.tar.gz
$ cd util-linux-2.24
$ ./configure --without-ncurses && make nsenter
$ cp nsenter /usr/local/bin

b.通過nsenter命令進入容器

為了鏈接到容器,需要知道容器的PID,可以使用inspect獲取,如:

docker inspect -f {{.State.Pid}} 5fbe4b029608 ##獲取PID,5fbe4b029608為容器ID
docker inspect 5fbe4b029608 ##查看該容器的詳細信息

獲取了PID之后,就可以通過下面的命令進入容器了

nsenter --target 31353 --mount --uts --ipc --net --pid ##31353為"docker inspect -f {{.State.Pid}} 5fbe4b029608"輸出的結果


免責聲明!

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



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