- 论坛徽章:
- 15
|
本帖最后由 rdcwayx 于 2015-09-09 19:48 编辑
很多时候,你需要去运行中的容器里看一下日志,或者进程。
第一种进入容器的方法是:用 docker 里有现成的 exec 和 attach 命令
参考: https://docs.docker.com/reference/commandline/exec/- 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命令,- docker-enter <容器名字或者ID> ls -l
复制代码 这个nsenter还是很有用处的,在 "docker exec" 或者 “docker attach" 无效的时候,尤其有用。
nsenter 具体的用法,看这里: https://github.com/jpetazzo/nsenter |
|