首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对docker-in-docker (dind)运行docker-compose

对docker-in-docker (dind)运行docker-compose
EN

Stack Overflow用户
提问于 2020-06-13 22:25:55
回答 1查看 245关注 0票数 0

在gitlab-ci中,我尝试在Docker容器中运行docker-compose。为此,我使用Docker-in-Docker。要测试一切是否正常,我只需执行一个docker info命令。但是,当我使用docker-compose图像作为我的图像时,我在执行docker info时得到以下错误

代码语言:javascript
运行
复制
ERROR: Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?

如果我使用docker本身作为镜像,则docker info命令成功。我对此感到困惑,因为docker-compose图像是基于docker图像的。

以下.gitlab-ci.yml会导致docker info命令出现错误:

代码语言:javascript
运行
复制
image: docker/compose:debian-1.26.0

stages:
  - test

variables:
  DOCKER_DRIVER: overlay2
  DOCKER_TLS_CERTDIR: "/certs"

services:
 - docker:19.03.8-dind

test-provider:
  stage: test
  script:
    - docker info

如果我将图像更改为docker:19.03.8,docker info命令可以正常运行。不知道我到底做错了什么。

EN

回答 1

Stack Overflow用户

发布于 2020-08-07 16:31:57

尝试在脚本部分显式启动dockerd。您还可以添加脚本,以便在docker守护进程启动成功时等待。类似于:

代码语言:javascript
运行
复制
sudo dockerd & timeout -t 9 bash -c "while [ ! -S /var/run/docker.sock ]; do sleep 3 && ls -lah /var/run/; done" || exit 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62361112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档