一 啓動進入容器指定bash 退出後容器關閉node
[root@Centos-node3 ~]# docker run -it centos bash
[root@83c6b25aca09 /]#
二 docker attach進入容器後退出 若是容器沒有指定bash環境會停留在空白頁面 退出後容器也會正常退出(進入容器後其餘人進入容器能夠看到你輸入的信息)linux
[root@Centos-node3 ~]# docker run -it -d --name mynginx nginx /bin/bash c23ba383b76baa6c3e1a9450e23e6e4f46724a4e2b8e8c2b8c002e54ba2e5f32 [root@Centos-node3 ~]# docker attach mynginx root@c23ba383b76b:/# ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr root@c23ba383b76b:/# exit exit [root@Centos-node3 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
三 docker exec 進入容器 會啓用一個bash環境nginx
[root@Centos-node3 ~]# docker run -it -d --name mycentos centos /bin/bash 68e1f711a4990f66ad3456b453591c3fa9a7d22d4fed3e50bda1cf27a36cc60a [root@Centos-node3 ~]# docker exec -it mycentos bash [root@68e1f711a499 /]# ps -ef PID TTY TIME CMD 1 ? 00:00:00 bash 13 ? 00:00:00 bash 25 ? 00:00:00 ps [root@68e1f711a499 /]# exit exit [root@Centos-node3 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 68e1f711a499 centos "/bin/bash" About a minute ago Up About a minute mycentos c23ba383b76b nginx "/bin/bash" 5 minutes ago Up 2 minutes 80/tcp mynginx
[root@Centos-node3 ~]# docker exec -it mycentos ls
anaconda-post.log dev home lib64 mnt proc run srv tmp var
bin etc lib media opt root sbin sys usrdocker
四 nsentercentos
yum -y install util-linux #安裝nsenter命令
[root@Centos-node3 ~]# docker inspect -f "{{ .State.Pid }}" mycentos
30428 #查看容器pidbash
nsenter -t 30428 -m -u -i -n -p -t:指定PID –u:參數是進入到uts namespace中 –i:參數是進入到System V IPC namaspace中 –n:參數是進入到network namespace中 –p:參數是進入到pid namespace中
腳本方式進入(可直接傳參docker name 或者ID)tcp
[root@Centos-node2 ~]# cat docker_in.sh #!/bin/bash #Use nsenter to access docker docker_in(){ NAME_ID=$1 PID=$(docker inspect -f "{{ .State.Pid }}" $NAME_ID) nsenter -t $PID -m -u -i -n -p } docker_in $1