使用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 <container-id>
$ docker inspect -f {{.State.Pid}} <container-id>
$ nsenter --target <pid> --mount --uts --ipc --net --pid
4、docker exec
最简单的命令 docker exec -it /bin/bash <container-id>
网友评论