docker compose in bitbucket - 无法连接到 unix:///var/run/docker.sock 上的 Docker 守护进程。 docker 守护进程是否正在运行?

时间:2021-07-05 14:38:59

标签: docker docker-compose bitbucket-pipelines azure-container-instances

我想将容器组从 bitbucket 管道部署到 Azure 容器实例。我有以下 bitbucket-pipelines.yml 文件:

image: ubuntu:20.04

clone:
  depth: 5

options:
  max-time: 15

pipelines:
  branches:
    master:
      - step:
          name: Deploy to aci
          deployment: test
          script:
            - apt-get update
            - apt-get install curl -y
            - curl -L https://raw.githubusercontent.com/docker/compose-cli/main/scripts/install/install_linux.sh | sh
            - curl -sSL https://github.com/docker/compose-cli/releases/download/v2.0.0-beta.3/docker-compose-linux-amd64 -o docker-compose
            - chmod +x docker-compose
            - mkdir -p ~/.docker/cli-plugins
            - mv docker-compose ~/.docker/cli-plugins/docker-compose
            - docker login azure --client-id $CLIENTID --tenant-id $TENANTID --client-secret $SECRET
            - docker login myregistry.azurecr.io -u $USERNAME -p $PASS 
            - docker context create aci myContext --subscription-id "00000000-0000-0000-0000-000000000000" --resource-group "myResouceGroup" --location "westeurope"
            - docker --context myContext compose up 
      services:
        - docker

我在执行 docker --context myContext compose up 命令时遇到以下错误:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

所有其他 docker 命令似乎都在工作,所以 docker-compose cli 似乎有问题,它没有找到正在运行的守护进程。

我尝试在 export DOCKER_HOST="tcp://0.0.0.0:2375" 之前添加 docker compose up,但没有帮助。

有什么我遗漏的吗?

更新 1:

如果我从以下位置更新最后一条命令:

- docker --context myContext compose up

致:

- docker context use myContext 
- docker compose up

我收到不同的错误: failed to dial gRPC: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing unable to upgrade to h2c, received 403"

更新 2

添加了 docker versiondocker ps 以获取更多信息。输出:

docker version

Client: Docker Engine - Community
 Cloud integration: 1.0.17
 Version:           19.03.15
 API version:       1.40
 ...

Server: Docker Engine - Community
 Engine:
  Version:          20.10.5
  API version:      1.41 (minimum version 1.12)
  ...

docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

1 个答案:

答案 0 :(得分:0)

docker daemon 是否正在运行? 是s.o 权限、docker-in-docker 等常见的错误,而且这个错误与docker-compose 无关。

就您而言,您是在 docker 容器内执行 docker 命令,因此请尝试在管道的开头添加:

options:
  docker: true

检查这些解决方案是否存在docker 守护进程是否正在运行?错误:

我还建议在使用 docker-compose 配置的 docker 上下文之前尝试使用 基本 docker 命令(简单构建或运行)。例如,当执行这些命令之一时,许多用户会通知相同的错误(是否 docker 守护程序正在运行?):

  • 码头信息
  • docker 运行...
  • docker ps