进入容器内部的四种方式

使用docker attach \ 使用SSH \ 使用nsenter \ 使用exec

1、 attach 

attach不适合produce 环境,原因在于多个终端同时使用attach进入一个容器时,信息会在多个终端同步显示。最重要的是,只要一个终端block了,所有的终端都会block。

2、ssh

(为什么不用ssh进入容器)https://www.oschina.net/translate/why-you-dont-need-to-run-sshd-in-docker?cmp

主要是密钥管理、安装server等问题。

3、nsenter

https://github.com/jpetazzo/nsenter

how to install 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  


要连接到一个容器,需要获取容器里第一个进程的pid

$ docker inspect

$ docker inspect -f {{.State.Pid}}

$  nsenter --target --mount --uts --ipc --net --pid


4、docker exec

最简单的命令 docker exec -it /bin/bash

你可能感兴趣的:(进入容器内部的四种方式)