不确定我是如何解决Dockernetworking问题到pkg回购的

Docker版本1.6.2,在Ubuntu 15.10上构build7c8fca2

一个半月前,我突然注意到,当我build立一个docker镜像时,我一直在使用Ubuntu容器中的apt和Fedora容器中的dnf

 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内部存在networking问题。 我试过了:

 sudo systemctl restart networking sudo systemctl restart network-manager 

到无济于事。 然后我试着:

 sudo systemctl restart docker 

哪个DID解决了这个问题,然后我build立的图像可以从Fedora和Ubuntu仓库获取软件包就好了。 我发现它不能令人满意,我解决了一个不可知的启发式问题。 有人可以向我解释为什么我所做的是解决了这个问题,为什么这个问题突然开始发生,所以我可以为它设置一些自动触发器,以避免这种情况再次发生?

理解发生的一个好的第一步是检查你的日志。 一些有用的命令来检查日志可能是:

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

如果您需要进一步帮助了解发生的情况,请发布一些相关日志以供审查。 但是,StackOverflow不是systemd问题的最佳位置。 考虑http://askubuntu.com或https://unix.stackexchange.com/