web-dev-qa-db-ja.com

企業プロキシの背後にあるドッカーマシン

Docker-machineを使用して、企業のHTTPプロキシの背後にあるプライベートクラウド(Openstack)上にインスタンスを作成しようとしています。

Docker-machineにプロキシを使用するように指示することはできますか、それともhttp_proxy env変数で事前に構成された一目イメージが必要ですか?

26
eighilaza

現在のdockerマシンのバージョンでは、boot2dockerのように変更を行うより良い方法を見つけることができません( Docker/Boot2Docker:OS XのdockerのHTTP/HTTPSプロキシを設定する

Docker machineの/ var/lib/boot2docker/profileでプロキシを手動で設定した場合、再起動後にプロキシ設定は自動的に削除されます。

したがって、--engine-envをプロキシに設定してdockerマシンを作成する必要があります

docker-machine create -d virtualbox \
    --engine-env HTTP_PROXY=http://example.com:8080 \
    --engine-env HTTPS_PROXY=https://example.com:8080 \
    --engine-env NO_PROXY=example2.com \
    proxybox

ノート:

これは2年前の回答であり、dockerで多くの変更が行われているため、プロキシの背後で動作させることができない場合は、 @ Senri's answer などをお読みください。

ドキュメント: ドッカーマシンの作成

28
BMW

前述したように、ファイルは次の場所で編集できます。

$HOME\.docker\machine\machines\default\config.json

hTTP_PROXY、HTTPS_PROXY、NO_PROXY変数を設定(または削除)します:

 "HostOptions": {
        "Driver": "",
        ...
        "EngineOptions": {
           ...
            "Env": [
              "HTTP_PROXY=http://10.121.8.110:8080",
              "HTTPS_PROXY=http://10.121.8.110:8080",
              "NO_PROXY=192.168.23.4"
            ],

ファイルを編集した後、実行する必要があるのは次のとおりです。

docker-machine provision 
32
Senri

既存のdocker-machine構成を変更して、プロキシの環境を追加できます。 $ HOME/.docker/machine/machines //。config.jsonにあるconfig.jsonを編集できます。

「HTTP_PROXY = http://example.com:808 」をconfig.jsonのEnvに追加します。マシンを再起動すると、設定は完了です。

5

Docker 18.09の時点では、次のようにコマンドラインでコンテナーへのプロキシなどの環境変数を指定できます。

docker run --env HTTP_PROXY="172.10.13.14" -it myImage:latest /bin/bash

さらに、次のように~/.docker/config.jsonファイルに書き込むことで、これらの設定をdockerクライアントに指定できます。

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://127.0.0.1:3001",
     "noProxy": "*.test.example.com,.example2.com"
   }
 }
}

詳細は docs で入手できます。

3
Fabulous

すでにマシン(VM)が作成されている場合は、次のようにプロキシを構成できます。

1- SSH into the docker dev Host: docker-machine ssh dev
2- Add the following lines to /var/lib/boot2docker/profile (this file is read-only, use Sudo)
    export HTTP_PROXY=http://<proxy>:<port>
    export HTTPS_PROXY=http://<proxy>:<port>
3- Exit the ssh session and restart the docker machine: docker-machine restart dev 

ソース

2
Abdelhafid