#docker#进入docker容器

在这里,我使用nsenter解决问题。因为不熟悉go,也没时间去看基础,所以选择了这个比较简单的方法,因为以前做过LFS,对编译也挺熟悉。下载util-linux2.24:

curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz \
     | tar -zxf-
cd util-linux-2.24
./configure --without-ncurses
make nsenter
cp nsenter /usr/local/bin

到此,工具已经安装完毕,再运行一个容器测试下:

docker run -d -P training/webapp python app.py

通过解析JSON得到这个容器的PID值:

PID=$(docker inspect --format '{{.State.Pid}}' my_container_id)

用上面提到的PID,进入容器:

nsenter --target $PID --mount --uts --ipc --net --pid


我已经可以在容器中进行操作了。


参考:http://jpetazzo.github.io/2014/03/23/lxc-attach-nsinit-nsenter-docker-0-9/

你可能感兴趣的:(docker,nsenter)