gpt4 book ai didi

Docker 内部 docker : volume is mounted, 但空

转载 作者:行者123 更新时间:2023-12-02 07:22:30 26 4
gpt4 key购买 nike

我正在运行一个 docker 容器,其中使用以下方式安装了 docker:

docker run -v /Path/to/service:/src/service -v /var/run/docker.sock:/var/run/docker.sock --net=host image-name python run.py

这将运行一个 python 脚本,该脚本创建 data文件夹位于 /src并填充它。打印时os.listdir('/src/data') ,我得到一个文件列表。

然后,我从此容器内运行一个容器,安装 data文件夹,使用 docker-py .

volumes = {'/src/data': {'bind': '/src', 'mode': 'rw'}}    
client.containers.run(image, command='ls data', name=container_key, network='host', volumes=volumes)

它打印:

Starting with UID: 0 and HOME: /src\n0\n'

这意味着data已安装,但为空。我做错了什么?

最佳答案

因此,将 docker 安装在容器内意味着从其中启动的容器正在您的主机上运行。

最终结果是主机上有两个容器 - 其中一个带有 /Path/to/service:/src/service和一个与 /src/data:/src

如果您想在两个容器之间共享一个卷,您通常应该使用“命名”卷,例如 docker run -v sharedvolume:/src/datadocker run -v sharedvolume:/src

关于Docker 内部 docker : volume is mounted, 但空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50971417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com