不确定我是如何解决 pkg repos 的 Docker 网络问题的

Unsure how I resolved a Docker networking issue to pkg repos

Docker 版本 1.6.2,在 Ubuntu 15.10

上构建 7c8fca2

一个半月前,我突然注意到,当我构建一个 docker 图像时,我一直在 Ubuntu 容器和 [=15] 中出现如下错误 apt =] 在 Fedora 容器中:

Err http://archive.ubuntu.com wily InRelease
Err http://archive.ubuntu.com wily-updates InRelease
Err http://archive.ubuntu.com wily-security InRelease
Err http://archive.ubuntu.com wily Release.gpg
Temporary failure resolving 'archive.ubuntu.com'
Err http://archive.ubuntu.com wily-updates Release.gpg
Temporary failure resolving 'archive.ubuntu.com'
Err http://archive.ubuntu.com wily-security Release.gpg
Temporary failure resolving 'archive.ubuntu.com'

Error: Failed to synchronize cache for repo 'fedora' from 'https://mirrors.fedoraproject.org/metalink?repo=fedora-22&arch=x86_64': Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for https://mirrors.fedoraproject.org/metalink?repo=fedora-22&arch=x86_64 [Could not resolve host: mirrors.fedoraproject.org]

为了排除故障,我尝试启动一个 Ubuntu 14.04 的 Vagrant 实例,它从 apt 的回购中抓取包就好了。

通过简单的科学实验,这意味着我在 Docker 内部遇到了网络问题。我试过了:

sudo systemctl restart networking
sudo systemctl restart network-manager

无济于事。然后我试了:

sudo systemctl restart docker

哪个 DID 解决了这个问题,然后我构建的图像可以从 Fedora 和 Ubuntu 存储库中抓取软件包就好了。我发现我用不可知论启发法解决了一个问题并不令人满意。有人可以向我解释为什么我做了什么解决了这个问题,为什么这个问题突然开始出现,所以我可以为它设置某种自动触发器以备将来避免再次发生?

了解正在发生的事情的第一步是检查您的日志。一些有用的检查日志的命令可能是:

# View logs specific to docker
journalctl -u docker

# View logs for a specific docker container
docker logs name-of-your-container

如果您想进一步了解发生了什么,post 一些相关日志供您查看。但是,Whosebug 并不是系统问题的最佳去处。考虑 http://askubuntu.com or https://unix.stackexchange.com/