很多时候,你需要去运行中的容器里看一下日志,或者进程。
第一种进入容器的方法是:用 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:小银运维站 禁止转载!谢谢!

 


1 条评论

欢迎留言