Docker:无法连接到http + docker:// localunixsocket的docker守护进程 - 它正在运行吗?

Raj*_*war 13 docker docker-compose

我有一个特殊的场景.我倾向于执行命令docker-compose -f dev.yml up --build来启动容器并工作.在这里,dev.yml是开发版docker-compose.yml.直到今天早上,每件事情都工作正常,突然间,我开始收到有关无法连接到docker-daemon的错误.

现在,只有在我--build包含在命令中时才会出现此问题.如果我只执行docker-compose -f dev.yml up它工作正常.如果我包含--build在命令中并使用sudo它执行它再次正常工作.

事情已验证:

  • 执行该命令的用户被添加到具有权限的docker组 /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
Run Code Online (Sandbox Code Playgroud)

更新: 我的同事陷入了同样的问题.我对celerybeat,celeryworker的配置有疑虑.有人可以验证吗?谢谢.

Raj*_*war 13

对我来说,以下命令有效,

sudo chown $USER:$USER -R .
Run Code Online (Sandbox Code Playgroud)

检查我在github上的这个对话,问题


Zol*_*tán 13

我就遇到了这个问题后,新安装的dockerdocker-compose在Ubuntu,尝试运行docker-compose up。我设法通过将我的用户添加到组中来解决它,如下所述docker

sudo usermod -aG docker ${USER}
Run Code Online (Sandbox Code Playgroud)

并注销并重新登录。

您可能能够避免必须注销并重新登录在这里描述的运行

su - $USER
Run Code Online (Sandbox Code Playgroud)


小智 5

我只是包含sudo之前docker-compose,并做到了.