很多时候,你需要去运行中的容器里看一下日志,或者进程。
第一种进入容器的方法是:用 docker 里有现成的 exec 和 attach 命令
docker run –name ubuntu_bash –rm -i -t ubuntu bash
docker exec -d ubuntu_bash touch /tmp/execWorks
docker exec -it ubuntu_bash bash
attach 的用法就看这里:https://docs.docker.com/reference/commandline/attach/,我就不多说了。
另一种方法是,用 nsenter
docker run –rm -v /usr/local/bin:/target jpetazzo/nsenter
运行这个,会安装三个可运行文件在 /usr/local/bin 目录下:nsenter, docker-enter, 另一个不记得了,用的不多。
进入容器:
PID=$(docker inspect –format {{.State.Pid}} <container_name_or_ID>)
nsenter –target $PID –mount –uts –ipc –net –pid
进入后,就可以运行支持的 linux 命令了
也可以不用进入,用 docker-enter 直接运行 Linux 命令,
这个 nsenter 还是很有用处的,在 “docker exec” 或者“docker attach” 无效的时候,尤其有用。
nsenter 具体的用法,看这里: https://github.com/jpetazzo/nsenter
by: 小银运维站 禁止转载!谢谢!