Ответ 1
ПРОБЛЕМА
Говоря с некоторыми разработчиками в # docker @freenode, проблема была понятна всем: DNS и окружающая среда. Строительство прекрасно работает при обычном подключении к Интернету дома.
РЕШЕНИЕ:
Эта проблема возникает в среде, где есть частный DNS-сервер, или сеть блокирует DNS-серверы Google. Даже если контейнер докеров может выполнить ping 8.8.8.8, сборка по-прежнему должна иметь доступ к одному и тому же частному DNS-серверу за вашим брандмауэром или центром данных.
Запустите демон Docker с помощью переключателя --dns, чтобы указать на ваш частный DNS-сервер, как и ваша конфигурация вашего хоста. Это было найдено путем проб и ошибок.
Подробнее
У моей ОС Mac OS X, ОС хоста, был настроен другой DNS, указанный на моем /etc/resolv.conf:
[email protected] ~ (mac) $ cat /etc/resolv.conf
search corp.my-private-company.net
nameserver 172.18.20.13
nameserver 172.20.100.29
Мой хост может отбрасывать пакеты на IP-адрес Google 8.8.8.8 при создании... Я просто взял эти 2 IP-адреса и разместил их под конфигурацией демона Ubuntu:
[email protected] ~ $ cat /etc/default/docker
...
...
# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--dns 172.18.20.13 --dns 172.20.100.29 --dns 8.8.8.8"
...
Теперь сборка работает так, как ожидалось!
$ sudo ./build.sh
Sending build context to Docker daemon 7.168 kB
Sending build context to Docker daemon
Step 0 : FROM centos
---> b157b77b1a65
Step 1 : MAINTAINER [email protected]
---> Running in 49bc6e233e4c
---> 2a380810ffda
Removing intermediate container 49bc6e233e4c
Step 2 : RUN yum install -y curl; yum upgrade -y; yum update -y; yum clean all
---> Running in 5f11b65c87b8
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirror.supremebytes.com
* extras: centos.mirror.ndchost.com
* updates: mirrors.tummy.com
Resolving Dependencies
--> Running transaction check
---> Package systemd.x86_64 0:208-11.el7 will be updated
---> Package systemd.x86_64 0:208-11.el7_0.2 will be an update
---> Package systemd-libs.x86_64 0:208-11.el7 will be updated
---> Package systemd-libs.x86_64 0:208-11.el7_0.2 will be an update
--> Finished Dependency Resolution
Благодаря @BrianF и другим, кто помог в канале IRC!
Постоянное решение VM - ОБНОВЛЕНИЕ 2 ИЮЛЯ 2015 г.
Теперь у нас есть GitHub Enterprise и CoreOS Enterprise Docker Registry... Итак, для меня было важно добавить корпоративные DNS-серверы с машины HOST, чтобы заставить VM работать.
Замена/etc/resolv.conf из гостевой ОС с помощью Host/etc/resolv.conf также устраняет проблему! Докер 1.7.0. Я только что создал новую виртуальную машину с использованием Ubuntu 15.04 на VMWare Fusion, и у меня снова возникла эта проблема...
/etc/resolv.conf ПЕРЕД
~/dev/github/public/stackedit on ⭠ master ⌚ 20:31:02
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
search localdomain
/etc/resolv.conf ПОСЛЕ *
~/dev/github/public/stackedit on ⭠ master ⌚ 20:56:09
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
search corp.mycompany.net
nameserver 10.180.194.35
nameserver 10.180.194.36
nameserver 192.168.1.1