如何让docker容器互相访问?

如何让docker容器互相访问?

到目前为止,我使用以下方法创建了 2 个 Docker 容器Docker 引擎Docker 组成用于 CI 概念验证。第一个是 Jenkins,另一个是 Gitlab CE。

以下是版本

Docker version 19.03.6
docker-compose version 1.25.4

我有一个docker-compose.yml可以完美启动两个容器的

version: "3"

services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    container_name: "gitlab-ci"
    restart: "always"
    hostname: "gitlab.example.com"
    ports:
      - "8081:80"
    volumes:
      - "/srv/gitlab/config:/etc/gitlab"
      - "/srv/gitlab/logs:/var/log/gitlab"
      - "/srv/gitlab/data:/var/opt/gitlab"
    environment:
      GITLAB_OMNIBUS_CONFIG: |
    external_url "http://gitlab"
  jenkins:
    image: "jenkins/jenkins:lts"
    container_name: "jenkins-ci"
    restart: "always"
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - "/home/USER/jenkinsci_docker:/var/jenkins_home"

然而两者似乎无法相互沟通,

因为我无法在 Jenkins 中添加存储库 URL,并且出现以下错误:

詹金斯截图

我检查了一下,我的本地 Gitlab CE 容器的 URL 在主机 http//:localhost:8081/root/simple-java-maven-app 上运行

我正在使用 Ubuntu,如果它能有所帮助。感谢阅读,如果我可以提供更多信息,请随时问我

答案1

在 Jenkins 服务部分添加以下内容:

    jenkins:
    ...
      links:
        - gitlab

这将使 Gitlab 容器在http://gitlab:8081/... 文档

您还可以添加虚拟网络,但由于它只有两个容器,所以我推荐这样做。

相关内容