6

我正在运行一个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已安装,但为空。我究竟做错了什么 ?

4

1 回答 1

4

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

最终结果是您在主机上有两个容器 - 一个带有 /Path/to/service:/src/service ,一个带有 /src/data:/src

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

于 2018-06-21T14:54:24.590 回答