2017-07-26 19 views
0

ローカルマシンの名前はmylocal、リモートマシンの名前はmyremote1myremote2myremote3myremote4とします。コンテナを管理するためにリモートマシンにドッカーコマンドを送る必要があります。ローカルマシンからこれらのコンテナを簡単に管理できる方法はありますか?dockerコマンドを別のマシンのコンテナに送信するにはどうすればいいですか?

+0

[Docker Engine API(v1.26)](https://docs.docker.com/engine/api/v1.26/)にチェックしましたか? – tgogos

+0

ドッキングエンジンをTLSでポート2376にバインドしていますか? (またはリスクがある場合は2375 TLSなし) – Grimmy

+0

これは良いアイデアですか?代わりに単にDocker Swarmを有効にしないのはなぜですか? https://docs.docker.com/engine/swarm/ kubernetesのような代替オプション(ドッカーホストの艦隊を管理するために使用される)もセットアップが簡単になり、より一般的な場所https://kubernetes.io/ –

答えて

0

これは、ポートリスニングを使用してドッカーサーバーを公開することで簡単に達成できます。あなたは-H tcp://0.0.0.0:2376を追加することにより、すべてのインターフェイス上でリッスンするようにドッキングウィンドウサービスを更新するすべてのインタフェース

に聞く

https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-socket-option

以下のURLを確認し、それを

を行うには、2つの方法があります。この場合、あなたはDOCKER_HOST

を設定することにより、リモートマシンにあなたのシステムから
export DOCKER_HOST=tcp://<remotemachine1ip>:2376 
docker run -it busybox 

をコマンドを実行することができますこれは、リモートマシン上のbusyboxのコンテナを実行し、同じにあなたのためのシェルを開きます。これは勧告された方法ではありません。なぜなら、IPに一般公開されていれば、あなたのシステムにハックしてアクセスできるようになるからです。ローカルインタフェース

でそれを行うには良い方法を聞く

はローカルインタフェースで待機することです。サービスコマンドに-H tcp://127.0.0.1:2376を追加します。現在、ドッカーデーモンはローカルホストでのみリッスンしており、公開されていません。

ssh接続が開いているまで、だから、我々が使用する我々のシステム上でそのポートを露出するために上記のコマンドのsshトンネルプロキシ

ssh -L 2376:127.0.0.1:2376 <user>@remoteip1 

は、私たちの地元の2376ポートにリモートマシンの2376ポートをマッピングします。 ssh接続を閉じると、トンネルも閉じます。ですから、DOCKER_HOST

export DOCKER_HOST=tcp://127.0.0.1:2376 
docker run -it busybox 

以前のアプローチの違いを使用してリモートマシンにアクセスすることができ、我々は指定IP、私たちが作成したトンネルです。もう少し作業はしていますが、もっと安全です

関連する問題