D

Docker中设置拉取镜像的超时时间

HB 网络电脑 2020-03-19
  1. 配置Docker守护进程
    Docker守护进程的配置文件通常位于/etc/docker/daemon.json。你可以通过编辑此文件来设置镜像拉取的超时时间。

‌步骤‌:

‌确认配置文件位置‌:
确保/etc/docker/daemon.json文件存在。如果不存在,可以创建一个。

‌编辑配置文件‌:
使用文本编辑器(如vim或nano)打开daemon.json文件,并添加或修改pull_timeout设置。例如,将超时时间设置为180秒:

{
  "debug": true,
  "pull_timeout": "180s"
}

如果文件中已经有其他设置,确保新添加的设置与现有设置格式一致,且使用逗号分隔。

‌重新加载配置并重启Docker服务‌:

sudo systemctl daemon-reload docker && sudo systemctl restart docker

‌验证设置‌:
你可以通过拉取一个较大的镜像来验证新的超时设置是否生效。如果超时时间设置合理,Docker将在指定的时间内完成镜像拉取,否则将报错超时。

  1. 使用环境变量
    另一种方法是使用环境变量来设置Docker客户端和Docker Compose的超时时间。这种方法不需要修改配置文件,但仅对当前终端会话有效。

在终端中执行以下命令来设置DOCKER_CLIENT_TIMEOUT和COMPOSE_HTTP_TIMEOUT环境变量(例如,设置为600秒):

export DOCKER_CLIENT_TIMEOUT=600
export COMPOSE_HTTP_TIMEOUT=600

‌拉取镜像‌:
在设置了环境变量的终端会话中,使用docker pull命令拉取镜像。Docker客户端将遵循你设置的超时时间。

‌全局配置‌(可选):
如果你希望每次启动终端时都自动加载这些环境变量,可以将它们添加到你的~/.bashrc或~/.zshrc文件中:

echo "export DOCKER_CLIENT_TIMEOUT=600" >> ~/.bashrc
echo "export COMPOSE_HTTP_TIMEOUT=600" >> ~/.bashrc
source ~/.bashrc

或者,如果你使用的是zsh,则修改~/.zshrc文件:

echo "export DOCKER_CLIENT_TIMEOUT=600" >> ~/.zshrc
echo "export COMPOSE_HTTP_TIMEOUT=600" >> ~/.zshrc
source ~/.zshrc
  1. 配置Docker镜像加速器

虽然设置超时时间可以解决超时问题,但有时候网络延迟或不稳定可能是导致超时的主要原因。在这种情况下,配置Docker镜像加速器可以显著提高镜像拉取速度,从而减少超时的可能性。

编辑daemon.json文件‌:
在/etc/docker/daemon.json文件中添加registry-mirrors设置,指定一个或多个镜像加速器的地址。例如:

{
  "registry-mirrors": ["https://your.mirror.address/"]
}

‌重新加载配置并重启Docker服务‌:

sudo systemctl daemon-reload docker && sudo systemctl restart docker

‌验证加速效果‌:
拉取一个镜像来验证加速器是否生效。如果配置正确,镜像拉取速度应该会有所提升。

相关文章:

Error response from daemon: Get “h t tps://registry-1.docker.io/v2/“: net/http错误处理办法

PREV
图片与文字同行水平居中对齐CSS
NEXT
openwrt旁路由设置