无法连接到 Docker 守护程序

Couldn't connect to Docker daemon

我是 Docker 和 CI\CD 的新人 我正在使用 vps 和 Ubuntu 18.04。 该项目的 docker 在本地运行并且工作正常。 我不太明白为什么服务器试图在 http 而不是 tcp 上找到 docker。

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd

docker 服务状态

{ "storage-driver":"overlay" }
image: docker/compose:latest
services:
  - docker:dind
stages:
  - deploy
variables:
    DOCKER_DRIVER: overlay2
    DOCKER_TLS_CERTDIR: ""

deploy:
  stage: deploy
  only:
    - master
  tags:
    - deployment
  script:
    # - export DOCKER_HOST="tcp://127.0.0.1:2375"
    - docker-compose stop || true
    - docker-compose up -d 
    - docker ps 

  environment:
    name: production

docker 需要 root 权限才能访问。如果您想要 运行 docker 命令,或来自普通用户的 docker-compose,您需要将您的用户添加到 docker 组,例如:

sudo usermod -a -G docker yourUserName

通过这样做,您可以与普通用户一起提升您的服务和其他 docker 内容。如果您不想将您的用户添加到 docker 组中,您需要始终在每个 docker 突击队员上添加 sudo 前缀 运行:

sudo docker-compose up -d

设置DOCKER_HOST变量。使用 docker:dind 服务时,守护程序的默认主机名是服务名称 docker.

variables:
    DOCKER_HOST: "tcp://docker:2375"

您还必须设置 GitLab 运行程序以启用特权容器。