Docker/Boot2Docker:为 OS X 上的 docker 设置 HTTP/HTTPS 代理 [英] Docker/Boot2Docker: Set HTTP/HTTPS proxies for docker on OS X

查看:15
本文介绍了Docker/Boot2Docker:为 OS X 上的 docker 设置 HTTP/HTTPS 代理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

简而言之:如何在 Mac OS X 上为 Docker 设置 HTTP/HTTPS 代理?

In short: How can I set the HTTP/HTTPS proxies for Docker on Mac OS X?

详细:

我在 Mac OS X 上通过代理运行 Docker (1.12).我按照安装说明安装了boot2docker.如果我从我的网络内部 Docker 注册表中提取,这工作正常.

I run Docker (1.12) on Mac OS X behind a proxy. I followed the installation instructions and installed boot2docker. This is working fine if I pull from my network-internal Docker registry.

但是,从 docker.io 拉取时出现以下错误:

However, I get the following error when pulling from docker.io:

machine:~ me$ docker run ubuntu echo hello world
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
2014/06/30 13:23:26 Get https://index.docker.io/v1/repositories/ubuntu/images:
dial tcp: lookup index.docker.io: no such host

注意 1:DOCKER_HOSThttp_proxyhttps_proxy 在环境中可用(运行 env 显示所有三个).

Note 1: DOCKER_HOST, http_proxy and https_proxy are available in the environment (running env displays all three).

注意 2:我在其他帖子中读到此错误发生在守护程序未正常运行时.但是,docker version 没有显示任何问题.此外,我可以从我的网络内部 Docker 注册表中拉取和运行映像.

Note 2: I read in other posts that this error occurs when the daemon is not running properly. However, docker version doesn't show any problems. Moreover, I can pull and run images pulled from my network-internal Docker registry.

注意 3:我能够在 Red Hat Linux<上设置 Docker/a> (RHEL).我必须将代理信息添加到 /etc/sysconfig/docker.我读到 Ubuntu 上有一个类似的文件(/etc/init/docker.conf).但是,我在 Mac OS X 上找不到 Docker(或 boot2docker?)的文件.

Note 3: I was able to set up Docker on Red Hat Linux (RHEL). I had to add the proxy information to /etc/sysconfig/docker. I read that there is a similar file on Ubuntu (/etc/init/docker.conf). However, I could not find that file for Docker (or boot2docker?) on Mac OS X.

推荐答案

您需要修改的配置文件不会在您的 OS X 文件系统上,它们将附加到 Tiny Core Linux VM 上,作为您的本地 Docker 服务器.

The config files you need to modify won't be on your OS X file system, they'll be attached to the Tiny Core Linux VM which acts as your local Docker server.

要为此配置代理,首先从应用程序启动 Boot2docker.启动后,获取一个终端窗口并通过 ssh 进入 VM:

To configure the proxy for that, first start Boot2docker from Applications. Once it's started, get a terminal window and ssh into the VM:

bash-3.2$ boot2docker ssh
Warning: Permanently added '[localhost]:2022' (RSA) to the list of known hosts.
                        ##        .
                  ## ## ##       ==
               ## ## ## ##      ===
           /""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
           \______ o          __/
                         __/
              \____\______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___  __| | ___   ___| | _____ _ __
| '_  / _  / _ | __| __) / _` |/ _  / __| |/ / _  '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
boot2docker: 1.0.1
             master : cad5ece - Fri Jun 20 02:03:40 UTC 2014
docker@boot2docker:~$

现在创建/修改/var/lib/boot2docker/profile 来设置代理信息:

Now create/modify /var/lib/boot2docker/profile to set proxy info:

docker@boot2docker:~$ sudo vi /var/lib/boot2docker/profile 

Tinycore 需要代理信息如下:protocol://ip:port
为安全起见,我为 HTTP 和 HTTPS 设置了代理.

Tinycore needs the proxy info as follows: protocol://ip:port
To be safe I set proxies for both HTTP and HTTPS.

export HTTP_PROXY=http://your.proxy.name:8080
export HTTPS_PROXY=http://your.proxy.name:8080

现在您可以重新启动 VM docker 服务并退出 VM.

Now you can restart the VM docker service and exit the VM.

docker@boot2docker:~$ sudo /etc/init.d/docker restart
docker@boot2docker:~$ exit
Connection to localhost closed.

您现在应该能够针对 VM 实例运行客户端.

You should be able to run the client against the VM instance now.

bash-3.2$ docker search ubuntu
NAME                                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
ubuntu                                           Official Ubuntu base image                      356                  
stackbrew/ubuntu                                 Official Ubuntu base image                      39                   
crashsystems/gitlab-docker                       A trusted, regularly updated build of GitL...

此更改通过 VM 重新启动保持不变.你应该只需要做一次.

This change is persisted through VM restarts. You should only need to do it once.

作为记录,VirtualBox 有一个全局的代理首选项设置,但我在那里尝试的任何方法都不起作用.

For the record, VirtualBox has a global preference setting for proxies but nothing I tried there would work.

这篇关于Docker/Boot2Docker:为 OS X 上的 docker 设置 HTTP/HTTPS 代理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆