孤立した環境で複数のコンピュータが実行されています。パブリックIPアドレスを使用するバスチャンマシンを介してアクセスできます。現在、ローカルコンピュータで作成されたDockerイメージを隔離された環境のコンピュータに自動的に展開しようとしています。
現在、次のコマンドがあります。
docker save test/myapp | gzip | pv | ssh ubuntu@bastion "cat > remote"
このコマンドはファイルをバスチャンマシンにコピーします。問題は、フォートマシンドライブに何も保存したくないということです。
パブリックIPアドレスなしで隔離された環境にあるすべてのシステムに画像を配信するために、Bascheonマシンにスクリプトを作成したいと思います。
パイプから入力を受け取るには、要塞システムに何らかのスクリプトが必要であると思います。
スクリプトは各マシンでsshコマンドを実行し、load imageコマンド内でdockerを実行する必要があります。 dockerマシンを利用すると簡単ですが、インターネット接続が必要なため使用できません。どんなアイデアがありますか?
簡単に言うと、要塞サーバーを介して私のローカルコンピュータのドッカーイメージを複数のサーバーに渡したいと思います。
このようなスクリプトが初めてで、質問が些細な場合は申し訳ありませんが、これまで解決できませんでした。
答え1
次のように複数のSSHパイプを使用できます。
docker save testi/myapp | gzip | pv | ssh ubuntu@bastion "cat | pv | ssh ubuntu@host \"docker load\" "
このコマンドはバスチャンを介してホストにファイルをロードし、ファイルはバスチャンマシンに保存されません。