詹金斯&x2B;Docker:无法连接到位于的Docker守护程序tcp://dind:2375. docker守护进程正在运行吗?

詹金斯&x2B;Docker:无法连接到位于的Docker守护程序tcp://dind:2375. docker守护进程正在运行吗?,docker,jenkins,docker-compose,jenkins-pipeline,Docker,Jenkins,Docker Compose,Jenkins Pipeline,我用这个docker compose.yml创建了一个jenkins: version: '3' services: dind: image: docker:dind privileged: true expose: - 2375 - 2376 volumes: - .docker/jenkins_data:/var/jenkins_home environment: DOCKER_TLS_CERTDIR

我用这个
docker compose.yml
创建了一个jenkins:

version: '3'
services:
  dind:
    image: docker:dind
    privileged: true
    expose:
      - 2375
      - 2376
    volumes:
      - .docker/jenkins_data:/var/jenkins_home
    environment:
      DOCKER_TLS_CERTDIR: ""
  jenkins:
    build: .docker
    environment:
      DOCKER_HOST: tcp://dind:2375
    ports:
      - 8081:8080
      - 50000:50000
    links:
      - dind
    volumes:
      - .docker/jenkins_data:/var/jenkins_home
      - .myProject:/home/project
.docker/Dokerfile:

FROM jenkins/jenkins:lts

LABEL maintainer="Antoine Descamps <antoine.descamps@ineat-conseil.fr>"

USER root

RUN echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main" >> /etc/apt/sources.list
RUN apt-key adv --keyserver https://keyserver.ubuntu.com:443 --recv-keys 93C4A3FD7BB9C367

RUN apt-get update

RUN curl -fsSL https://get.docker.com | bash -
RUN curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose
RUN chmod +x /usr/local/bin/docker-compose

RUN usermod -aG docker jenkins

USER jenkins

运行docker compose时,日志中显示DinD正在监听端口
2376

dind|u 1 | time=“2020-05-28815:41:13.544954400Z”level=info msg=“API监听[:]:2376”

第一路:

FROM jenkins/jenkins:lts

LABEL maintainer="Antoine Descamps <antoine.descamps@ineat-conseil.fr>"

USER root

RUN echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main" >> /etc/apt/sources.list
RUN apt-key adv --keyserver https://keyserver.ubuntu.com:443 --recv-keys 93C4A3FD7BB9C367

RUN apt-get update

RUN curl -fsSL https://get.docker.com | bash -
RUN curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose
RUN chmod +x /usr/local/bin/docker-compose

RUN usermod -aG docker jenkins

USER jenkins
使用dind中的
环境:DOCKER\u TLS\u CERTDIR:“

因此,您可以使用
DOCKER\u主机:tcp://dind:2375

第二种方式:

FROM jenkins/jenkins:lts

LABEL maintainer="Antoine Descamps <antoine.descamps@ineat-conseil.fr>"

USER root

RUN echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main" >> /etc/apt/sources.list
RUN apt-key adv --keyserver https://keyserver.ubuntu.com:443 --recv-keys 93C4A3FD7BB9C367

RUN apt-get update

RUN curl -fsSL https://get.docker.com | bash -
RUN curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose
RUN chmod +x /usr/local/bin/docker-compose

RUN usermod -aG docker jenkins

USER jenkins
删除
环境:DOCKER\u TLS\u CERTDIR:“


因此,您可以使用
DOCKER\u主机:tcp://dind:2376

@sgrillon TLS默认情况下已在Docker 19中启用。这就是它在2376端口监听的原因。我不知道如何禁用它或绕过TLS验证。如果不是强制性的,您可以使用
dind-18