1. lxc(-attach)
直到Docker 0.8.1版本为止,LXC一直是管理容器的基本工具,Docker一直支持这个工具。但是从0.9.0版本开始,Docker默认使用libcontainer管理容器,不再依赖LXC了。因此默认情况下,你不能使用lxc-attach了。
如果你仍然希望使用lxc-attach,那么你需要使用-e lxc选项来重新启动Docker服务进程。使用这个选项,Docker的内部将再次使用LXC管理容器了。完成这个任务最简单的做法就是创建/etc/default/docker文件(如果这个文件仍然不存在),并添加以下内容:
DOCKER_OPTS=" -e lxc"
重新启动Docker服务。要连接容器,你需要知道完整的容器ID:
#docker ps --no-trunc
接下来,你就可以连接这个容器了。要完成下面工作,你还需要root权限:
#lxc-attach -n <container-id> -- /bin/bash
2. Nsenter(可行)
docker进入容器从util-linux版本2.23开始,nsenter工具就包含在其中。它用来访问另一个进程的名字空间。nsenter要正常工作需要有root权限。很不幸,Ubuntu 14.4仍然使用的是util-linux版本2.20。安装最新版本的util-linux(2.24)版,请按照以下步骤:
#tar -zxf-cd util-linux-2.24
#./configure –without-ncurses
#make
#cp nsenter /usr/local/bin/
#cp nsenter /usr/local/bin/
为了连接到容器,你还需要到容器的第一个进程的PID。
# docker inspect --format '{{.State.Pid}}' <container-id>
通过这个PID,你就可以连接到这个容器:
# nsenter --target PID --mount --uts --ipc --net --pid --
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论