从 gitlab-runner 容器连接到 docker 容器时出现问题

problem connecting to docker container from gitlab-runner container

我正在尝试在 运行ner 中创建一个 gitlab 管道和 运行 一些容器化测试;使用 DinD 服务时,容器似乎已启动 运行ning,但我无法从 运行ner?

连接到它

是否需要任何其他设置?谢谢!

image: docker:19.03.13

stages:
  - scan

RUN:
  stage: scan
  services:
    - name: docker:dind
      command: ["--tls=false"]
  before_script:
    - docker info
  variables:
    DOCKER_HOST: tcp://docker:2375
    DOCKER_TLS_CERTDIR: ""
    DOCKER_DRIVER: overlay2

  script:
    - |
    - apk add curl
    - apk add --no-cache --upgrade bash
    - docker run -d -p 8000:8000 jdkelley/simple-http-server
    - docker network ls
    - curl docker:8000

我得到了什么:

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
abd87e7148db        bridge              bridge              local
d88e547f3e91        host                host                local
2f6727a12c9c        none                null                local

$ curl docker:8000
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (7) Failed to connect to docker port 8000 after 7 ms: Connection refused```

当您使用 docker:dind 时,您的服务在 localhost 上不可用——它们在 docker 守护程序的别名下可用——docker:dind 服务.所以使用容器别名来到达容器。在这种情况下,它是 docker

    - docker run -d -p 8000:8000 jdkelley/simple-http-server
    - curl docker:8000