docker:无法连接到docker守护进程在http + docker:// localunixsocket – 它运行?
我有一个奇怪的场景。 我倾向于执行命令docker-compose -f dev.yml up --build
来获取容器并工作。 在这里, dev.yml
是docker-compose.yml
开发版本。 直到今天早上,所有的东西都运行正常,而且突然之间,我开始出现无法连接到docker-daemon的错误。
现在,只有当我在命令中包含了--build
时,才会出现这个问题。 如果我只执行docker-compose -f dev.yml up
它可以正常工作。 如果我包含 – build立命令并使用sudo
执行它,它再次正常工作。
事情validation:
- 执行该命令的用户被添加到具有
/var/run/docker.sock
权限的/var/run/docker.sock
dev.yml的详细信息
version: '2' volumes: postgres_data_dev: {} postgres_backup_dev: {} services: postgres: build: ./compose/postgres volumes: - postgres_data_dev:/var/lib/postgresql/data - postgres_backup_dev:/backups environment: - POSTGRES_USER=rocky django: build: context: . dockerfile: ./compose/django/development/Dockerfile depends_on: - postgres environment: - POSTGRES_USER=rocky - USE_DOCKER=yes volumes: - .:/app - /tmp/ links: - postgres - redis expose: - "8000" env_file: - ./dev.env nginx: build: context: . dockerfile: ./compose/nginx/development/Dockerfile depends_on: - django ports: - "0.0.0.0:80:80" links: - django volumes_from: - django redis: image: redis:latest hostname: redis celeryworker: build: context: . dockerfile: ./compose/django/development/Dockerfile env_file: ./dev.env depends_on: - django - redis - postgres volumes_from: - django command: celery -A rocky.taskapp worker -l INFO restart: on-failure celerybeat: build: context: . dockerfile: ./compose/django/development/Dockerfile env_file: ./dev.env depends_on: - django - redis - postgres - celeryworker volumes_from: - django command: celery -A rocky.taskapp beat -l INFO
更新:我的同事陷入了同样的问题。 我对celerybeat,celeryworker的configuration有疑问。 任何人都可以请validation? 谢谢。
对于我来说,下面的命令工作,
sudo chown $USER:$USER -R .
检查我在github上的这个对话
这很像是一个权限问题,docker-compose完全给出了错误的错误。
尝试使用docker
而不是docker-compose
手动构build图片,例如docker build -f=./compose/django/development/Dockerfile .
很可能你会看到真正的问题是什么。
$ sudo service docker start
这将开始运行docker守护进程,如果它以某种方式停止,并且不要忘记将你的用户添加到sudo usermod -aG docker $(whoami)
组sudo usermod -aG docker $(whoami)