How to bind volumes in docker-py?
docker, dockerpy, python
Solution
Below is the current working way to do volume bindings:
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'))
Problem
I think this used to work up to a few months ago. The regular commandline 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 ``` works as expected but I cannot get this to work in 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'])) ``` ..always tells me that new doesn't exist. How is `volumes-from` supposed to be done with docker-py?