はじめに
この実験では、docker context import
コマンドを効果的に使用する方法を学びます。まず、Docker コンテキストを作成してファイルにエクスポートし、コンテキスト設定をパッケージ化する方法を実演します。
エクスポート後、エクスポートされたファイルから、および標準入力から直接、このコンテキストを Docker にインポートする練習を行います。最後に、インポートされたコンテキストが正しく認識され、Docker 環境内で利用可能であることを確認します。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、docker context import
コマンドを効果的に使用する方法を学びます。まず、Docker コンテキストを作成してファイルにエクスポートし、コンテキスト設定をパッケージ化する方法を実演します。
エクスポート後、エクスポートされたファイルから、および標準入力から直接、このコンテキストを Docker にインポートする練習を行います。最後に、インポートされたコンテキストが正しく認識され、Docker 環境内で利用可能であることを確認します。
このステップでは、Docker コンテキストを作成し、ファイルにエクスポートする方法を学びます。Docker コンテキストは、異なる Docker デーモンへの接続を管理する方法です。デフォルトでは、Docker はローカルのデーモンに接続しますが、リモートデーモンや Docker Swarm、Kubernetes などの他の環境に接続するためのコンテキストを作成できます。
まず、my-context
という名前の新しい Docker コンテキストを作成します。このコンテキストは、デフォルトのローカル Docker デーモンに接続するように設定します。
docker context create my-context --docker "host=unix:///var/run/docker.sock"
このコマンドは、my-context
という名前の新しいコンテキストを作成し、Docker ホストをローカルデーモンのデフォルト Unix ソケットとして指定します。
次に、この新しく作成したコンテキストをmy-context.tar.gz
というファイルにエクスポートします。
docker context export my-context -o ~/project/my-context.tar.gz
このコマンドは、my-context
を~/project
ディレクトリにある tar.gz ファイルにエクスポートします。-o
フラグは出力ファイルのパスを指定します。
~/project
ディレクトリの内容をリスト表示することで、ファイルが作成されたことを確認できます。
ls ~/project/
出力にmy-context.tar.gz
が表示されるはずです。
前のステップでは、Docker コンテキストをmy-context.tar.gz
というファイルにエクスポートしました。このステップでは、このファイルからコンテキストを Docker に再度インポートします。
インポートする前に、既存のmy-context
を削除して、現在存在しないコンテキストをインポートする状況をシミュレートしましょう。
docker context rm my-context
このコマンドはmy-context
という名前の Docker コンテキストを削除します。コンテキストを再度リスト表示することで削除されたことを確認できます。
docker context ls
リストからmy-context
が消えていることを確認してください。
次に、~/project/my-context.tar.gz
ファイルからコンテキストをインポートします。
docker context import my-context-from-file ~/project/my-context.tar.gz
このコマンドは指定したファイルからコンテキストをインポートし、インポートされたコンテキストにmy-context-from-file
という名前を付けます。
インポートが完了したら、再度 Docker コンテキストをリスト表示して新しくインポートされたコンテキストを確認できます。
docker context ls
これでコンテキストのリストにmy-context-from-file
が表示されるはずです。
前のステップでは、ファイルから Docker コンテキストをインポートしました。別の方法として、エクスポートされたコンテキストデータを標準入力 (stdin) 経由で直接docker context import
コマンドにパイプする方法があります。これは、コンテキストをファイルに保存せずにインポートしたい場合に便利です。
まず、前のステップでインポートしたコンテキストを削除し、競合を避けます。
docker context rm my-context-from-file
次に、cat
コマンドを使用してmy-context.tar.gz
ファイルの内容を読み取り、docker context import
コマンドにパイプします。
cat ~/project/my-context.tar.gz | docker context import my-context-from-stdin -
このコマンドでは、cat ~/project/my-context.tar.gz
がファイルの内容を読み取ります。パイプ記号|
はcat
コマンドの出力をdocker context import
コマンドの入力として送信します。docker context import
コマンドの末尾の-
は、標準入力からコンテキストデータを読み取るように指示します。インポートするコンテキストにはmy-context-from-stdin
という名前を付けています。
コマンドが完了したら、Docker コンテキストをリスト表示して、標準入力からコンテキストがインポートされたことを確認できます。
docker context ls
これでコンテキストのリストにmy-context-from-stdin
が表示されるはずです。
前のステップでは、2 つの異なる方法(ファイルからのインポートと標準入力からのインポート)を使用して Docker コンテキストを作成、エクスポート、インポートしました。この最終ステップでは、インポートしたコンテキストが機能し、Docker デーモンとのやり取りに使用できることを確認します。
まず、利用可能なコンテキストをリスト表示して、my-context-from-file
とmy-context-from-stdin
の両方が存在することを確認します。
docker context ls
出力には両方のコンテキストが表示されるはずです。
次に、標準入力からインポートしたmy-context-from-stdin
コンテキストに切り替えます。
docker context use my-context-from-stdin
このコマンドは現在の Docker コンテキストをmy-context-from-stdin
に設定します。これ以降の Docker コマンドは、このコンテキストを使用して Docker デーモンに接続します。
コンテキストが正しく機能していることを確認するために、実行中のコンテナをリスト表示するなど、簡単な Docker コマンドを実行します。ローカルの Docker デーモンに接続しているため、このコマンドはコンテキストを指定せずにdocker ps
を実行した場合と同じ出力を表示するはずです。
docker ps
コンテキストが正しく設定されていれば、このコマンドは正常に実行され、実行中のコンテナのリスト(存在する場合)が表示されます。
最後に、デフォルトのコンテキストに戻します。
docker context use default
このコマンドは現在の Docker コンテキストをデフォルトのローカルデーモンに戻します。
この実験では、Docker コンテキストの作成、エクスポート、インポートを通じて管理方法を学びました。まず、ローカルデーモンに接続するように設定されたmy-context
という新しい Docker コンテキストを作成し、このコンテキストを tar.gz ファイルにエクスポートしました。
エクスポート後、コンテキストを Docker に再インポートする練習を行いました。最初に元のコンテキストを削除して新しいコンテキストをインポートするシミュレーションを行い、その後、docker context import
コマンドを使用して事前に作成したファイルからコンテキストを正常にインポートし、区別できるように新しい名前を付けました。