【发布时间】:2015-10-28 05:45:01
【问题描述】:
我是 Docker 新手。我有一个 python 脚本:
-
通过以下方式启动一个 docker 容器:
call(["sudo docker run -i -t -d test /bin/sh"],shell=True) -
通过命令删除容器内部存在的软链接:
call("sudo docker exec -i "+ tag1 +" rm /usr/local/lib/boost_logger",shell=True)tag1 是我的 docker 容器 ID
-
我通过以下方式将新文件从我的 centos 文件夹复制到 docker 实例:
call("sudo tar -cv * | sudo docker exec -i "+ tag1 +" tar x -C /usr/local/lib/", shell=True) -
我使用以下方法重新创建了 2 个软链接:
call("sudo docker exec -i "+ tag1 +" ln -s /usr/local/lib/libboost_logger.so /usr/local/lib/boost_logger",shell=True) call("sudo docker exec -i "+ tag1 +" ln -s /usr/local/lib/libredis_client.so /usr/local/lib/redis_client",shell=True) -
现在,我通过以下方式提交 docker 映像:
dockercommit = ["sudo","docker","commit","-m",'"Building docker instance"',"-a",'"Tejas"',tag1,dockerfilename] call(dockercommit)
相同的命令可以通过 bash 正常工作。
我面临的问题是在第 2 步之后。我的脚本停止执行。它在我手动点击 Ctrl+D 并执行脚本的其余部分后恢复!
我在运行在 virtualbox 上的 centos 上运行 docker 实例。我分配了 3 个内核和大约 10GB 的基本内存。
此外,如果当前没有运行 docker 实例且仅存在基本映像,则按 Ctrl+D 会立即释放脚本。
但如果我有更多实例,或者可能在同一脚本的第二次或第三次迭代期间,释放控件需要更长的时间。
【问题讨论】:
-
test是你自己的形象吗?如果是的话,你能分享一下 Dockerfile 吗? -
你认为
-i选项有什么作用?
标签: python python-2.7 docker subprocess