2016-10-27 7 views
4

all。Docker Toolbox(ドッカーマシン)を実行しているWindowsからDocker APIへのアクセスを有効にする方法

最新のOracle VirtualBoxを使用して、Windows 7をホストOSとして最新のDocker Toolboxを実行しています。

DockerリモートAPIへの非TLSアクセスを有効にしようとしています。そのため、Windowsで実行中のPostman RESTクライアントを使用し、VirtualBoxのdocker-machineで動作するdocker APIを使用できます。 Dockerの設定に-H tcp://0.0.0.0:2375が含まれていると、ドッカーマシンのポート2375でAPIを公開するトリックが行われますが、私にとってはこの設定が保存されている場所を見つけることができず、変更することができません。

ツールボックスCLIからdocker-machine sshを実行してから、/etc/init.d/dockerファイルに移動してポケットしましたが、ファイルへの変更はありません。docker-machine restart

私はUbuntuとOSXではこの質問に対する回答を見つけることができましたが、Windowsでは答えが見つかりませんでした。

ありがとうございました。

+0

ここに答えがあります:http://stackoverflow.com/questions/26424338/docker-daemon-config-file-on-boot2docker-docker-machine-docker-toolbox/26781047#26781047よろしくお願いします。 –

+0

@CarlosRafaelRamirez、よろしいですか?重複する質問ですか?もしそうなら、それにフラグを立てることができます。 – Rao

+0

質問は同じではありません。同じ話題ではありません。しかし、同じファイルで解決することができます。人々がこの解決策を探しているので、DNSに関連する他の解決策とは異なるこの質問を残すことが重要です。 –

答えて

2

@CarlosRafaelRamirezは適切な場所について言及しましたが、Windows開発者はしばしばLinuxエコシステムに慣れていないため、いくつかの詳細を追加して詳細なステップバイステップの説明を提供します。

免責事項:以下の手順は、WindowsホストからドッカーリモートAPIをヒットすることを可能にしますが、心の中で二つのことを保管してください。

  1. それは非常ないドッカーマシンを作るように、これは生産に行われるべきではありません安全です。
  2. 現在のソリューションでは、docker-machineとすべてのdocker CLI機能がほとんど無効になっています。 docker-machine sshは稼動し続け、SSHをドッカーマシンに強制的に送信してdockerコマンドにアクセスします。

ソリューション さて、ここで非TLSポートにドッカーのAPIを切り替えるために必要な手順は次のとおりです。 (Dockerマシン名は「default」とみなされますが、マシン名が異なる場合は、以下のコマンドで指定する必要があります)。

  1. 「Docker Quickstart Terminal」を起動します。 Bashシェルを起動し、以下のコマンドをすべて実行します。 docker-machine ipコマンドを実行し、ドッカーホストマシンのIPアドレスを書き留めます。そして、これは、ドッカーホストの設定がされている「プロファイル」ファイルを、編集するために必要なシステム特権モードでは、「VI」のエディタを起動し
  2. docker-machine ssh
  3. cd /var/lib/boot2docker
  4. sudo vi profileを行います。 (Windowsユーザーとして、viに精通していない場合は、超基礎的なクラッシュコースがあります。ファイルがviで開いているとき、viは編集モードではありません。 "i"を押して編集モードを開始します。変更を保存しないでviを終了する必要がある場合は、Escの後に:q!と入力してEnterキーを押します。 ":"はviのコマンドモードをオンにし、 "q!"コマンドは保存せずに終了することを意味します。詳細なコマンド情報はhereです。
  5. viを使用して、DOCKER_HOSTをDOCKER_HOST='-H tcp://0.0.0.0:2375'に変更し、DOCKER_TLS=noに設定します。上記のように変更を保存します。
  6. exit SSHセッションを終了します。
  7. docker-machine restart

doockerマシンが再起動した後、あなたのsouldはhttp://dokerMachineIp:2375/containers/json?all=1のように、ドッキングウィンドウのAPIのURLをヒットすることができ、かつ有効なJSONを取り戻します。

これは、の最終目標を達成するために必要なステップのです。

docker-machine configまたはdocker imagesを実行しようとすると、docker CLIクライアントが古いポート/ TLS設定を介してDockerに接続しようとしていることを示すエラーメッセージが表示されます。しかし私には予想されなかった何を、私はすべてのGetting Started方向に続いて、

$ env | grep DOCKER 
DOCKER_HOST=tcp://192.168.99.101:2375 
DOCKER_MACHINE_NAME=default 
DOCKER_TLS_VERIFY=0 
DOCKER_TOOLBOX_INSTALL_PATH=C:\Program Files\Docker Toolbox 
DOCKER_CERT_PATH=C:\Users\USERNAME\.docker\machine\machines\default 

結果が得られ、export DOCKER_HOST=tcp://192.168.99.101:2375export DOCKER_TLS_VERIFY=0を実行した同じだった後でも、ということである。

$ docker-machine env 
Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.101:2376" 

あなたが表示された場合Docker CLIを新しいDockerホストアドレスに設定するために環境変数をどのように変更したかにかかわる問題です。コメントしてください。

この問題を回避するには、docker-machine sshコマンドを使用し、その後にdockerコマンドを実行します。

関連する問題