Until recently, I could attach a container to a network before starting the container as follows:
params = {
'image': 'busybox',
'name': 'test',
}
result = docker_client.create_container(**params)
docker_client.connect_container_to_network(result['Id'], network_id)
docker_client.start(result['Id'])
However, now I always get an error, because the container has not been started when I'm connecting it to the network:
APIError: 500 Server Error: Internal Server Error ("Container 0b1005fc86be565d1a54c44f89f2a60d338b541f8b73805c2a367116bf04a060 is not running")
I can reproduce the same error with the command-line client:
% docker create --name test busybox
7aa04b908b2ec45a37f272809ec909116cfae5ae80a13c6596822ca4d9b39a0e
% docker network connect test 7aa04b908b2e
Error response from daemon: Container 7aa04b908b2ec45a37f272809ec909116cfae5ae80a13c6596822ca4d9b39a0e is not running
So I need to connect the container to the network directly when I create the container:
% docker create --net=test busybox test
In docker-py
, how do I attach a container to a network directly during creation?
You can use the HostConfig to configure the network the container is attached to:
As an example, you would run:
This connects the container to the network
test
.