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/data
和 docker run -v sharedvolume:/src
我正在 运行 安装一个 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/data
和 docker run -v sharedvolume:/src