我是Docker的新手。我有一個Python腳本,做:執行docker exec命令時執行python腳本掛起
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是我的碼頭集裝箱ID
我複製新文件從通過我的CentOS文件夾泊塢窗實例:
call("sudo tar -cv * | sudo docker exec -i "+ tag1 +" tar x -C /usr/local/lib/", shell=True)
我用重新創建2個軟鏈接:
dockercommit = ["sudo","docker","commit","-m",'"Building docker instance"',"-a",'"Tejas"',tag1,dockerfilename] call(dockercommit)
:
現在,我通過提交泊塢窗圖像
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)
相同的命令通過bash工作正常。
我面對的問題是在步驟2之後。我的腳本停止執行。在我手動點擊後,它會恢復。Ctrl + D並且腳本的其餘部分被執行!
我在運行在virtualbox上的centos上運行docker實例。我已經分配了3個內核和大約10GB的基本內存。
另外,如果沒有當前正在運行的docker實例並且只存在基礎映像,則按下Ctrl + D會立即釋放該腳本。
但是,如果我有更多的實例或可能在同一腳本的第二次或第三次迭代期間,控件獲得釋放需要較長的時間。與shell=True
是'測試'你自己的形象?如果是這樣,你可以共享Dockerfile嗎? – booyaa
您認爲'-i'選項的作用是什麼? – jfs