一、登陆方法
1、使用ssh登陆进容器
2、使用nsenter、nsinit等第三方工具
3、使用docker本身提供的工具
方法1 需要在容器中启动sshd,存在开销和攻击面增大的问题。同时也违反了Docker所倡导的一个容器一个进程的原则
方法2 需要额外学习使用第三方工具
方法3 Docker目前主要提供了Docker exec和Docker attach两个命令
推荐方法2:
nsenter工具在util-linux包2.23版本之后包中,如果系统中util-linux包中没有此命令,需要源码安装,
安装步骤如下
curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz tar -zxf util-linux-2.24.tar.gz cd util-linux-2.24; ./configure --without-ncurses make nsenter && cp nsenter /usr/local/bin
cat /usr/bin/docker_enter #!/bin/bash sudo nsenter --target `docker inspect --format {{.State.Pid}} $1` --mount --uts --ipc --net --pid
如果再需要进入容器中,只需要执行
docker_enter [container_name]