Docker 在拉取镜像或运行容器时挂起

Docker hangs when pulling images or runing containers

我在 Ubuntu 20.04 上使用 docker 时遇到了一个奇怪的行为(我在公司环境中使用它)。 自 2 天以来,我完全无法 运行 容器,甚至无法从 Docker Hub 中提取图像。

当尝试从 Docker Hub(甚至是 hello-world)拉取任何图像时,图像被下载到本地,然后 docker 冻结,如下图所示

我首先尝试重新启动 docker 守护程序甚至机器(因为这是我的开发计算机)=> 不行。

然后我尝试使用以下命令完全重新安装 docker 软件包及其所有依赖项:

sudo apt purge docker docker.io
sudo apt autoremove --purge docker docker.io
sudo rm -rf /var/lib/docker
sudo rm -rf /etc/docker
rm -rf ~/.docker
sudo apt install docker.io

结果 => 不成功。

下一步是重新安装我的 Ubuntu 20.04 机器 => 不行。

我还尝试将 docker 守护程序的同时连接限制为只有一个,因为我在某些论坛上看到一些人遇到过类似的问题,他们通过限制同时连接解决了这个问题 => NOK

我试图通过将以下内容添加到 /etc/docker/daemon.json => NOK 来移动 docker 根文件夹的位置。

{
   "data-root": "/var/lib/docker"
}

我向 dockerd 命令行添加了 --debug 标志以获取有关正在发生的事情的更多信息,这是我尝试 运行 hello-world 容器时得到的信息:

sept. 09 16:09:38 dockerd[1842]: time="2021-09-09T16:09:38.582649566+02:00" level=debug msg="pulling blob \"sha256:b8dfde127a2919ff59ad3fd4a0776de178a555a76fff77a506e128aea3ed41e3\""
sept. 09 16:09:39 dockerd[1842]: time="2021-09-09T16:09:39.290277164+02:00" level=debug msg="Downloaded b8dfde127a29 to tempfile /var/lib/docker/tmp/GetImageBlob129841538"
sept. 09 16:09:39 dockerd[1842]: time="2021-09-09T16:09:39.290586225+02:00" level=debug msg="Using /usr/bin/unpigz to decompress"
sept. 09 16:09:39 dockerd[1842]: time="2021-09-09T16:09:39.296254339+02:00" level=debug msg="Applying tar in /var/lib/docker/overlay2/91e5944b0c0d34d010b4f28036e29d47213266af5677660edbb00470160fb186/diff" storage-driver=overlay2

Blob 出现在 /var/lib/docker/tmp 中,文件夹 /var/lib/docker/overlay2/91e5944b0c0d34d010b4f28036e29d47213266af5677660edbb00470160fb186/diff 已创建但为空。

最后,问题的根源是 docker 的错误配置,因此它无法在我们的公司网络中运行。 再次刷新 docker => 重新安装 => 完全重新配置 => OK