繁体   English   中英

如何将体积传递给 docker 容器?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM