41

つまり、Mac OS X で Docker の HTTP/HTTPS プロキシを設定するにはどうすればよいですか?

詳しくは

プロキシの背後にある Mac OS X で Docker (1.12) を実行しています。インストール手順に従い、boot2docker をインストールしました。ネットワーク内部の Docker レジストリからプルすると、これは正常に機能します。

ただし、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_HOSTとは環境http_proxyhttps_proxy使用できます (runningenvでは 3 つすべてが表示されます)。

注2:他の投稿で、デーモンが正しく実行されていないときにこのエラーが発生することを読みました。ただし、docker version問題はありません。さらに、ネットワーク内部の Docker レジストリから取得したイメージを取得して実行できます。

注 3 : Red Hat Linux (RHEL)で Docker をセットアップできました。にプロキシ情報を追加する必要がありました/etc/sysconfig/docker。Ubuntu にも同様のファイルがあると読みました ( /etc/init/docker.conf)。ただし、Mac OS X の Docker (または boot2docker?) のファイルは見つかりませんでした。

4

6 に答える 6

101

変更する必要がある構成ファイルは、OS X ファイル システムにはありません。それらは、ローカルの Docker サーバーとして機能する Tiny Core Linux VM に接続されます。

そのためのプロキシを構成するには、まずアプリケーションから Boot2docker を起動します。開始したら、ターミナル ウィンドウを取得し、VM に ssh します。

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 を作成/変更して、プロキシ情報を設定します。

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

Tinycore には、次のようなプロキシ情報が必要です。 protocol://ip:port
安全のために、HTTP と HTTPS の両方にプロキシを設定しました。

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

これで、VM docker サービスを再起動して VM を終了できます。

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

これで、VM インスタンスに対してクライアントを実行できるはずです。

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 を再起動しても保持されます。一度だけ実行する必要があります。

記録として、VirtualBox にはプロキシのグローバル設定がありますが、私が試したものは何も機能しませんでした。

于 2014-06-30T20:57:52.143 に答える
1

Docker for Macを使用していて、プロキシ環境の背後にいる場合。

トップメニューバーのドッカーアイコンをクリックします。(ここのステップ 1.3 に示されているように)

に移動しPreferences > Advanced、そこにある HTTP および HTTPS オプションでプロキシを設定します。その下にある [適用して再起動] をクリックします。準備できた。:)

于 2016-10-12T07:29:43.360 に答える
0

Docker ビルドでの curl の問題を解決するために、Dockerfile 内に以下を追加しました。

ENV http_proxy=http://infoprx2:8080
ENV https_proxy=http://infoprx2:8080
RUN apt-get update && apt-get install -y curl vim

ENV ステートメントは RUN ステートメントの BEFORE であることに注意してください。

docker デーモンがインターネットにアクセスできるようにするために (私は boot2docker で kitematic を使用しています)、以下を /var/lib/boot2docker/profile に追加しました。

export HTTP_PROXY=http://infoprx2:8080
export HTTPS_PROXY=http://infoprx2:8080
于 2016-10-26T14:38:56.147 に答える