如何绑定docker-py中的卷?

我觉得这个习惯在几个月前就已经完成了。 常规的命令行docker:

>> docker run --name 'mycontainer' -d -v '/new' ubuntu /bin/bash -c 'touch /new/hello.txt' >> docker run --volumes-from mycontainer ubuntu /bin/bash -c 'ls new' >> hello.txt 

按预期工作,但我不能得到这个在docker-py中工作:

 from docker import Client #docker-py import time docker = Client(base_url='unix://var/run/docker.sock') response1 = docker.create_container('ubuntu', detach=True, volumes=['/new'], command="/bin/bash -c 'touch /new/hello.txt'", name='mycontainer2') docker.start(response1['Id']) time.sleep(1) response = docker.create_container('ubuntu', command="/bin/bash -c 'ls new'", volumes_from='mycontainer2') docker.start(response['Id']) time.sleep(1) print(docker.logs(response['Id'])) 

..总是告诉我,新不存在。 如何使用docker-py来完成volumes-from

以下是目前正在进行卷绑定的工作方式:

 volumes= ['/host_location'] volume_bindings = { '/host_location': { 'bind': '/container_location', 'mode': 'rw', }, } host_config = client.create_host_config( binds=volume_bindings ) container = client.create_container( image='josepainumkal/vwadaptor:jose_toolUI', name=container_name, volumes=volumes, host_config=host_config, ) response = client.start(container=container.get('Id')) 

从docker api版本1.10开始volumes-from start()代替create()

可从docker-py版本0.3.2获得

拉请求引入了变化: https : //github.com/dotcloud/docker-py/pull/200

原来的答案已经废弃在api中,不再有效。 以下是您如何使用create host config命令来完成此操作

 import docker client = docker.from_env() container = client.create_container( image='ubuntu', stdin_open=True, tty=True, command='/bin/sh', volumes=['/mnt/vol1', '/mnt/vol2'], host_config=client.create_host_config(binds={ '/tmp': { 'bind': '/mnt/vol2', 'mode': 'rw', }, '/etc': { 'bind': '/mnt/vol1', 'mode': 'ro', } }) ) client.start(container)