1. 程式人生 > >Docker進入容器的幾種方法

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
        退出容器,不會關閉容器。