はじめに
この実験では、docker context useコマンドを使用して異なる Docker コンテキストを管理および切り替える方法を学びます。Docker コンテキストを使用すると、ローカルまたはリモートのさまざまな Docker デーモンに簡単に接続できます。
まず、利用可能な Docker コンテキストを一覧表示して現在の設定を確認します。次に、同じローカルデーモンを指す場合でも、新しい Docker コンテキストを作成し、作成プロセスを練習します。最後に、新しく作成したコンテキストに切り替え、その後デフォルトのコンテキストに戻る方法を学び、docker context useのコア機能を実践します。
利用可能な Docker コンテキストの一覧表示
このステップでは、利用可能な Docker コンテキストを一覧表示する方法を学びます。Docker コンテキストは、異なる Docker デーモンに接続する方法です。デフォルトでは、Docker はローカルのデーモンに接続しますが、リモートデーモンや他の環境に接続するためのコンテキストを作成することもできます。
利用可能な Docker コンテキストを一覧表示するには、docker context lsコマンドを使用します。このコマンドは、各コンテキストの名前、説明、Docker エンドポイント、およびオーケストレーターを含むテーブルを表示します。コンテキスト名の横にあるアスタリスク (*) は、現在アクティブなコンテキストを示します。
あなたの環境で利用可能な Docker コンテキストを一覧表示してみましょう。
docker context ls
次のような出力が表示されるはずです:
NAME DESCRIPTION DOCKER ENDPOINT ORCHESTRATOR
default * Current DOCKER_HOST environment unix:///var/run/docker.sock swarm
この出力は、現在defaultという名前の 1 つのコンテキストがあり、これがアクティブなコンテキストで、Unix ソケット/var/run/docker.sockを介してローカルの Docker デーモンに接続していることを示しています。
新しい Docker コンテキストの作成
このステップでは、新しい Docker コンテキストを作成します。この実験ではリモートデーモンには接続しませんが、コンテキストの作成は基本的なスキルです。デフォルトコンテキストと同じローカル Docker デーモンを指すが、異なる名前を持つコンテキストを作成します。これにより、コンテキストの作成と切り替えのプロセスを理解できます。
新しい Docker コンテキストを作成するには、docker context createコマンドの後に新しいコンテキストに付けたい名前を指定します。また、Docker デーモンのエンドポイントも指定する必要があります。この例では、Unix ソケット/var/run/docker.sockを使用してローカル Docker デーモンを指すmy-local-contextという名前のコンテキストを作成します。
新しいコンテキストを作成しましょう:
docker context create my-local-context --docker "host=unix:///var/run/docker.sock"
コンテキストが作成されたことを確認する出力が表示されます:
my-local-context
Successfully created context "my-local-context"
では、再度コンテキストを一覧表示して、新しく作成されたコンテキストを確認しましょう。
docker context ls
出力にはdefaultコンテキストと新しいmy-local-contextの両方が表示されます。
NAME DESCRIPTION DOCKER ENDPOINT ORCHESTRATOR
default * Current DOCKER_HOST environment unix:///var/run/docker.sock swarm
my-local-context unix:///var/run/docker.sock
defaultコンテキストには依然としてアスタリスク (*) が付いており、これが現在アクティブなコンテキストであることを示しています。
新しい Docker コンテキストの使用
このステップでは、前のステップで作成した新しい Docker コンテキストに切り替えます。コンテキストを切り替えることで、Docker コマンドを異なる Docker デーモンに向けることができます。
別の Docker コンテキストに切り替えるには、docker context useコマンドの後に使用したいコンテキスト名を指定します。
作成したmy-local-contextに切り替えてみましょう:
docker context use my-local-context
コンテキストが設定されたことを確認する出力が表示されます:
Current context is now "my-local-context"
では、再度コンテキストを一覧表示して、どのコンテキストがアクティブになっているか確認しましょう。
docker context ls
出力には、アスタリスク (*) で示されるようにmy-local-contextがアクティブなコンテキストとして表示されます。
NAME DESCRIPTION DOCKER ENDPOINT ORCHESTRATOR
default Current DOCKER_HOST environment unix:///var/run/docker.sock swarm
my-local-context * unix:///var/run/docker.sock
このケースでは両方のコンテキストが同じローカル Docker デーモンを指していますが、Docker コマンドが使用するコンテキストを正常に切り替えることができました。
デフォルトコンテキストに戻す
この最終ステップでは、デフォルトの Docker コンテキストに戻します。特定のコンテキストでの作業が終了し、通常の Docker 環境に戻りたい場合によく行われる操作です。
デフォルトコンテキストに戻すには、同じdocker context useコマンドを使用しますが、今回はコンテキスト名としてdefaultを指定します。
defaultコンテキストに戻しましょう:
docker context use default
コンテキストがデフォルトに戻ったことを確認する出力が表示されます:
Current context is now "default"
最後に、コンテキストをもう一度一覧表示して、defaultコンテキストがアクティブになっていることを確認します。
docker context ls
出力には再びdefaultコンテキストの横にアスタリスク (*) が表示されます。
NAME DESCRIPTION DOCKER ENDPOINT ORCHESTRATOR
default * Current DOCKER_HOST environment unix:///var/run/docker.sock swarm
my-local-context unix:///var/run/docker.sock
Docker コンテキストの一覧表示、作成、使用、切り替えを正常に行うことができました。この基本的な理解は、異なる Docker 環境で作業する際に非常に重要です。
まとめ
この実験では、Docker コンテキストの管理方法を学びました。まずdocker context lsを使用して利用可能なコンテキストを一覧表示し、デフォルトコンテキストとその接続詳細を確認しました。次に、docker context createを使ってmy-local-contextという新しいコンテキストを作成する練習を行い、この演習では同じローカルデーモンへの接続ではありましたが、新しい接続ポイントを定義するプロセスを実践しました。
新しいコンテキスト作成後、通常はdocker context useコマンドを使ってこの新しいコンテキストに切り替え、以降の Docker コマンドでアクティブなコンテキストとして使用する方法を学びます。最後に、元のデフォルトコンテキストに戻す操作を実践し、コンテキストを使用して異なる Docker 環境間を移動する方法についての理解を深めました。



