从 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
我正在尝试在 运行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