docker-py: ConnectionError: ('Connection aborted.', error(2, 'No such file or directory'))

Attempting to spawn a docker container from within a docker container using docker-py.

OS X, dockerpy-1.10.6

Here is my code (select_device is a simple, known-good function)

docker_client = docker.from_env()
worker = docker_client.create_container("worker",
                                    environment={'DEVICE':select_device(priority),
                                        'GIT_REPO':git_repo, 'TASK_ID':delegate.request.id})

Here is the trace:

delegation_1  | [2016-12-05 07:39:41,079: INFO/MainProcess] Received task: delegate[e28262d3-1862-456c-ba43-013114fc7dbf]
delegation_1  | [2016-12-05 07:39:43,095: ERROR/PoolWorker-3] Task delegate[e28262d3-1862-456c-ba43-013114fc7dbf] raised unexpected: ConnectionError(ProtocolError('Connection aborted.', error(2, 'No such file or directory')),)
delegation_1  | Traceback (most recent call last):
delegation_1  |   File "/usr/local/lib/python2.7/dist-packages/celery/app/trace.py", line 368, in trace_task
delegation_1  |     R = retval = fun(*args, **kwargs)
delegation_1  |   File "/usr/local/lib/python2.7/dist-packages/celery/app/trace.py", line 623, in __protected_call__
delegation_1  |     return self.run(*args, **kwargs)
delegation_1  |   File "/opt/app/delegate.py", line 45, in delegate
delegation_1  |     'GIT_REPO':git_repo, 'TASK_ID':delegate.request.id})
delegation_1  |   File "/usr/local/lib/python2.7/dist-packages/docker/api/container.py", line 135, in create_container
delegation_1  |     return self.create_container_from_config(config, name)
delegation_1  |   File "/usr/local/lib/python2.7/dist-packages/docker/api/container.py", line 145, in create_container_from_config
delegation_1  |     res = self._post_json(u, data=config, params=params)
delegation_1  |   File "/usr/local/lib/python2.7/dist-packages/docker/client.py", line 198, in _post_json
delegation_1  |     return self._post(url, data=json.dumps(data2), **kwargs)
delegation_1  |   File "/usr/local/lib/python2.7/dist-packages/docker/utils/decorators.py", line 47, in inner
delegation_1  |     return f(self, *args, **kwargs)
delegation_1  |   File "/usr/local/lib/python2.7/dist-packages/docker/client.py", line 135, in _post
delegation_1  |     return self.post(url, **self._set_request_timeout(kwargs))
delegation_1  |   File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 535, in post
delegation_1  |     return self.request('POST', url, data=data, json=json, **kwargs)
delegation_1  |   File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 488, in request
delegation_1  |     resp = self.send(prep, **send_kwargs)
delegation_1  |   File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 609, in send
delegation_1  |     r = adapter.send(request, **kwargs)
delegation_1  |   File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 473, in send
delegation_1  |     raise ConnectionError(err, request=request)
delegation_1  | ConnectionError: ('Connection aborted.', error(2, 'No such file or directory'))

Am I crazy in thinking I can run docker-py from within a docker container?

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Reactions: 1
  • Comments: 15 (2 by maintainers)

Most upvoted comments

If you get No such file or directory, check the docker service is running: sudo systemctl start docker

If you get Permission denied, make sure your user is added into the “docker” group: sudo usermod -aG docker ${USER}

Am I crazy in thinking

No, you’re not. But you have to bind-mount docker socket (if that’s how you access docker daemon) inside the container. Then you’re fine.

The error here means that /run/docker.sock doesn’t exist.

Hey guys,

I tried to mount volume for docker.sock and i got this error: requests.exceptions.ConnectionError: ('Connection aborted.', error(111, 'Connection refused'))

Instead No such file or directory now i’m getting Connection refused Perhaps it’s a permission problem, someone got this problem after mounted volume?