容器中的docker pull图像因超时而失败

时间:2020-03-02 19:15:04

标签: docker docker-compose

我正在运行具有3个服务的docker-compose。我的主要服务取决于图像服务,而图像服务取决于Dind服务

  service-1:
    image: 'someimage'
    privileged: true
    ports:
      - '8911:8911'
    environment:
      - docker-compose=true
    volumes:
      - scratch:/tmp/scratch
      - bundles:/tmp/bundles:ro
    command: http-compile
    depends_on:
      - img

  img-service:
    image: 'img'
    privileged: true
    ports:
      - '8909:8909'
    environment:
      - DOCKER_HOST=tcp://dind-img:2375
    volumes:
      - bundles:/tmp/bundles
      - ./deploy/path/to/config.json:/etc/config.json
    command: runc-setup
    depends_on:
      - dind-img

  dind-service:
    image: docker:18-dind
    privileged: true
    volumes:
      - execimages:/var/lib/docker
      - tmp:/tmp

所有这些服务映像都是在本地构建的,但是其中一项服务是从网上获取其他映像(例如语言运行时,例如Go)并在容器内部本地构建的。

但是在获取图像时,出现超时错误,因此依赖于其他两个服务的服务失败。

我是在工作场所执行此操作的,我尝试查看是否配置了代理,但是运行命令env | grep proxy并没有给我任何帮助。

所以这可能不是网络问题,可能与我的docker-setup有关。

我工作场所中在Mac上开发此项目的

人们从未遇到过docker pull的问题。我在Ubuntu 18.04上

我从docker repol运行了shell script来检查配置,以检查丢失了什么,这些都是丢失的结果。这些是否引起了问题?

CONFIG_NF_NAT_IPV4: missing
CONFIG_NF_NAT_NEEDED: missing
CONFIG_MEMCG_SWAP_ENABLED: missing
CONFIG_IOSCHED_CFQ: missing
CONFIG_CFQ_GROUP_IOSCHED: missing
CONFIG_RT_GROUP_SCHED: missing
CONFIG_INET_XFRM_MODE_TRANSPORT: missing
zfs command: missing
zpool command: missing

1 个答案:

答案 0 :(得分:0)

检查您的日志,看看是否看到以下内容:

[0683] Handler for POST /images/create returned error: Get https://registry-1.docker.io....: dial tcp: lookup registry-1.docker.io on 8.8.8.8:53: read udp 192.168.0.163:32769->8.8.8.8:53: read: connection refused (or timeout)

这表明DNS查询是从ubuntu上的临时端口运行的,并且DNS服务器超时或拒绝了请求。

相反,将本地DNS缓存/服务器添加为resolve.conf中的主服务器 例如猫/etc/resolv.conf

nameserver 192.168.0.1
nameserver 8.8.8.8
....

然后您的docker pull应该成功工作。

相关问题