我正在运行一个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
已安装,但为空。我在做什么错了?
答案 0 :(得分:1)
将docker安装在容器中意味着从那里开始的容器正在您的HOST计算机上运行。
最终结果是您在主机上有两个容器-一个
/Path/to/service:/src/service
和一个
/src/data:/src
如果要在两个容器之间共享卷,通常应使用“命名”卷,例如
docker run -v sharedvolume:/src/data
和docker run -v sharedvolume:/src