Оновлено 10.02.2018
Завдяки новій функції в опції --config
docker, вам більше не потрібно встановлювати проксі в Dockerfile. Ви можете мати той самий файл Docker, який буде використовуватися в корпоративному середовищі та поза ним.
--config string Location of client config files (default "~/.docker")
або змінної середовища DOCKER_CONFIG
`DOCKER_CONFIG` The location of your client configuration files.
$ export DOCKER_CONFIG=~/.docker
https://docs.docker.com/engine/reference/commandline/cli/
https://docs.docker.com/network/proxy/
Я рекомендую встановити проксі з httpProxy, httpsProxy, ftpProxy
та noProxy
(Офіційний документ пропускає змінну, ftpProxy
яка іноді корисна)
{
"proxies":
{
"default":
{
"httpProxy": "http://127.0.0.1:3001",
"httpsProxy": "http://127.0.0.1:3001",
"ftpProxy": "http://127.0.0.1:3001",
"noProxy": "*.test.example.com,.example2.com"
}
}
}
Налаштуйте проксі-IP та порт, якщо потрібно, та збережіть у ~/.docker/config.json
Після того, як ви правильно його встановили, ви можете запустити збірку докера та запустити докер як зазвичай.
$ docker build -t demo .
$ docker run -ti --rm demo env|grep -ri proxy
(standard input):http_proxy=http://127.0.0.1:3001
(standard input):HTTPS_PROXY=http://127.0.0.1:3001
(standard input):https_proxy=http://127.0.0.1:3001
(standard input):NO_PROXY=*.test.example.com,.example2.com
(standard input):no_proxy=*.test.example.com,.example2.com
(standard input):FTP_PROXY=http://127.0.0.1:3001
(standard input):ftp_proxy=http://127.0.0.1:3001
(standard input):HTTP_PROXY=http://127.0.0.1:3001
Стара відповідь (Знято з експлуатації)
Нижче налаштування в Dockerfile працює для мене. Я тестував в CoreOS
, Vagrant
і boot2docker
. Припустимо, що проксі-порт є3128
В Centos:
ENV http_proxy=ip:3128
ENV https_proxy=ip:3128
В Ubuntu:
ENV http_proxy 'http://ip:3128'
ENV https_proxy 'http://ip:3128'
Будьте обережні з форматом, у когось є http, у когось немає, хтось із єдиною квотою. якщо IP-адреса 192.168.0.193, тоді буде встановлено:
В Centos:
ENV http_proxy=192.168.0.193:3128
ENV https_proxy=192.168.0.193:3128
В Ubuntu:
ENV http_proxy 'http://192.168.0.193:3128'
ENV https_proxy 'http://192.168.0.193:3128'
Якщо вам потрібно встановити проксі в coreos, наприклад, щоб витягнути зображення
cat /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://192.168.0.193:3128"