Docker進入容器的幾種方法
進入容器的幾種方法:
1、exec
通過docker ps 檢視需要進入的容器pid
執行
docker exec -it 246f35c432de /bin/bash
退出容器,不會關閉容器,一般使用這個方法。
2、attach
通過docker ps 檢視需要進入的容器pid
docker attach pid
退出容器會關閉容器,不推薦
3、ssh
在映象(或容器)中安裝SSH Server,這樣就能保證多人進入
容器且相互之間不受干擾了,相信大家在當前的生產環境中(沒有使用Docker的情況)也是這樣做的。
但是使用了Docker容器之後不建議使用ssh進入到Docker容
4、nsenter
系統預設將我們需要的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可以訪問另一個程序的名稱空間。所以為了連線到某個容器我們還需要獲取該容器的第一個程序的PID。
可以使用docker inspect命令來拿到該PID。
docker ps
可以使用docker inspect來檢視該容器的詳細資訊。
docker inspect 44fc0f0582d9
docker inspect 246f35c432de | grep Pid
如果要顯示該容器第一個進行的PID可以使用如下方式
docker inspect -f {{.State.Pid}} 44fc0f0582d9
在拿到該程序PID之後我們就可以使用nsenter命令訪問該容器了。
nsenter --target 3326 --mount --uts --ipc --net --pid
退出容器,不會關閉容器。