[英]How to pass volume to docker container?
我正在運行以下 docker 命令:
docker run -d -v /Users/gowthamkrishnaaddluri/Documents/dfki_sse/demo:/quantum-demo/ -it demo python3 /quantum-demo/circuit.py --res './'
我正在嘗試在 python 中運行上述命令,我的代碼如下:
container = client.create_container(
image='demo',
stdin_open=True,
tty=False,
command="python3 /quantum-demo/circuit.py --res='./'",
volumes=['/Users/gowthamkrishnaaddluri/Documents/dfki_sse/demo', '/quantum-demo/'],
detach=True,
)
client.start(container=container.get('Id'))
我無法看到運行 python 文件 (circuit.py) 時生成的文件。 這些文件是在我運行 docker 命令時生成的,當我使用容器 api 時,該文件在目錄中看不到。 我在使用客戶端創建容器中的卷時做錯了什么嗎? 謝謝!
我怎樣才能糾正上述問題,以便我可以正常 map 音量? 或者請告訴我如何使用docker卷,以便將docker文件夾中生成的文件復制到本地目錄(例如訓練后保存neural.network model)
謝謝!
嗨希望你做得很好!
所以你應該使用dict
而不是list
,你也應該使用另一種方法。 一個例子如下:
import docker
client = docker.from_env()
client.containers.run(
image="python",
auto_remove=True,
detach=True,
tty=False,
stdin_open=True,
volumes={
# path on your machine/host
"/Users/volodymyr/Development/sandbox/stackoverflow/file.py": {
"bind": "/mnt/file.py", # path inside the container
"mode": "rw",
}
},
command=["python", "/mnt/file.py", "-w", "world!"],
)
# file.py
import argparse
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("-w", "--word")
args = parser.parse_args()
print(f"Hello {args.word!s}.")
我在我的機器上測試了這段代碼並且它有效。 ( docker
sdk 版本是6.0.1)
文檔: https://docker-py.readthedocs.io/en/stable/containers.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.