Docker inside docker : 卷已挂载,但为空

Docker inside docker : volume is mounted, but empty

我正在 运行 安装一个 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 脚本,它在 /src 中创建一个 data 文件夹并填充它。打印 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

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