【问题标题】:error during connect: Get http://docker:2375/v1.24/containers/json: dial tcp: lookup docker on 10.0.2.3:53: server misbehaving连接过程中出错:获取 http://docker:2375/v1.24/containers/json: dial tcp: lookup docker on 10.0.2.3:53: server misbehaving
【发布时间】:2021-08-17 05:31:25
【问题描述】:

昨天我使用以下命令在 docker 中运行了 docker

$ docker run -it docker

它拉动了 docker 并把我带到了 sh 就像 / # 一样

我尝试在其中运行 docker,它正在工作。

但今天我又做了同样的事情,它开始给我一个错误

/ # docker container ls
error during connect: Get http://docker:2375/v1.24/containers/json: dial tcp: lookup docker on 10.0.2.3:53: server misbehaving

那个 docker 是 20.10 并且在开始时它正在运行 https://github.com/docker-library/docker/blob/f6a0c427f0354dcf5870c430c72c8f1d6b4e6d5e/20.10/docker-entrypoint.sh 文件,所以不需要从 cmd 设置。

【问题讨论】:

    标签: docker docker-in-docker


    【解决方案1】:

    我遇到了同样的错误,但解决了。

    我们已经按照https://docs.gitlab.com/runner/install/docker.html#option-2-use-docker-volumes-to-start-the-runner-container-v /var/run/docker.sock:/var/run/docker.sock 部分)的选项 2 中所述将主机的 Docker 套接字绑定到容器。

    缺少的是将挂载的目录添加到运行者config.toml 的卷部分:

    [[runners]]
      ...
      [runners.docker]
        ...
        volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"]
    

    这似乎使 TCP 连接变得不必要并且错误消失了。

    【讨论】:

    • 如果我没记错的话,这样你就可以共享你的 HOST docker 守护进程,而不是使用 dind 服务中的那个。
    猜你喜欢
    • 2022-07-17
    • 2019-11-30
    • 2021-07-04
    • 2021-04-26
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 2020-07-10
    相关资源
    最近更新 更多