Docker 连接时出错:Post http://docker:2375/v1.24/auth
Docker error during connect: Post http://docker:2375/v1.24/auth
我正在使用 docker+ 机器来 运行 我的 gitlab ci/cd 作业。
我的 .gitlab-ci.yml 看起来是这样的:
image: docker:latest
variables:
DOCKER_HOST: tcp://docker:2375/
DOCKER_TLS_CERTDIR: ""
services:
- docker:19.03.12-dind
stages:
- build
- deploy
before_script:
- mkdir -p ~/.ssh
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
- chmod 700 ~/.ssh/id_rsa
- eval "$(ssh-agent -s)"
- ssh-add ~/.ssh/id_rsa
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
build:
stage: build
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD registry.gitlab.com
- docker info
- apk add --no-cache py-pip python3-dev libffi-dev openssl-dev gcc libc-dev make
- export CRYPTOGRAPHY_DONT_BUILD_RUST=1
- pip install docker-compose
我的 config.toml 看起来像这样:
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "Docker Runner"
url = "https://gitlab.com"
token = "**"
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
[runners.docker]
tls_verify = false
image = "docker:stable"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
shm_size = 0
到达命令时:“docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD registry.gitlab.com”
GitLab 输出这个:
$ [[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
$ docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD registry.gitlab.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
error during connect: Post http://docker:2375/v1.24/auth: dial tcp: lookup docker on 172.31.0.2:53: no such host
Cleaning up file based variables 00:01
ERROR: Job failed: exit code 1
我不明白错误可能在哪里...在更改 ci 文件和 config.toml.
之后
我找到了错误的解决方法。
只是跑步者和 gitlab-ci 文件之间的 docker 图像不匹配。我只是在 yaml 和 toml 文件中更改了 image = docker:19.03.12
。
我正在使用 docker+ 机器来 运行 我的 gitlab ci/cd 作业。 我的 .gitlab-ci.yml 看起来是这样的:
image: docker:latest
variables:
DOCKER_HOST: tcp://docker:2375/
DOCKER_TLS_CERTDIR: ""
services:
- docker:19.03.12-dind
stages:
- build
- deploy
before_script:
- mkdir -p ~/.ssh
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
- chmod 700 ~/.ssh/id_rsa
- eval "$(ssh-agent -s)"
- ssh-add ~/.ssh/id_rsa
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
build:
stage: build
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD registry.gitlab.com
- docker info
- apk add --no-cache py-pip python3-dev libffi-dev openssl-dev gcc libc-dev make
- export CRYPTOGRAPHY_DONT_BUILD_RUST=1
- pip install docker-compose
我的 config.toml 看起来像这样:
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "Docker Runner"
url = "https://gitlab.com"
token = "**"
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
[runners.docker]
tls_verify = false
image = "docker:stable"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
shm_size = 0
到达命令时:“docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD registry.gitlab.com” GitLab 输出这个:
$ [[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
$ docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD registry.gitlab.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
error during connect: Post http://docker:2375/v1.24/auth: dial tcp: lookup docker on 172.31.0.2:53: no such host
Cleaning up file based variables 00:01
ERROR: Job failed: exit code 1
我不明白错误可能在哪里...在更改 ci 文件和 config.toml.
之后我找到了错误的解决方法。
只是跑步者和 gitlab-ci 文件之间的 docker 图像不匹配。我只是在 yaml 和 toml 文件中更改了 image = docker:19.03.12
。