はじめに
この実験では、既存の Docker コンテキストの設定をdocker context updateコマンドを使用して変更する方法を探求します。まず、作業用の新しい Docker コンテキストを作成することから始めます。
コンテキストの作成後、その説明を更新する方法と、接続先の Docker エンドポイントを変更する方法を実演します。最後に、コンテキスト設定が正常に更新されたことを確認します。このハンズオン演習を通じて、異なる Docker デーモンに接続するための Docker コンテキストの管理と変更に関する実践的な経験を得ることができます。
新しい Docker コンテキストを作成
このステップでは、新しい Docker コンテキストを作成する方法を学びます。Docker コンテキストは、異なる Docker デーモンへの接続を管理する方法です。デフォルトでは、Docker はローカルの Docker デーモンに接続するdefaultコンテキストを使用します。しかし、リモートの Docker デーモンや他のコンテナオーケストレーションプラットフォームに接続するために新しいコンテキストを作成できます。
新しい Docker コンテキストを作成するには、docker context createコマンドを使用します。このコマンドには、新しいコンテキストの名前と接続先の Docker デーモンのエンドポイントが必要です。この実験では、ローカルの Docker デーモンに接続するmy-contextという名前のコンテキストを作成します。
ターミナルを開き、次のコマンドを実行してください:
docker context create my-context --docker host=unix:///var/run/docker.sock
このコマンドはmy-contextという名前の新しいコンテキストを作成します。--docker host=unix:///var/run/docker.sockオプションは、このコンテキストが/var/run/docker.sockの Unix ソケットを介して Docker デーモンに接続することを指定します。これはほとんどの Linux システムにおける Docker ソケットのデフォルトの場所です。
コマンドを実行すると、コンテキストが正常に作成されたことを示す次のような出力が表示されます:
my-context
Successfully created context "my-context"
コンテキストを作成したので、利用可能なコンテキストをリスト表示してその存在を確認できます。docker context lsコマンドを使用してください:
docker context ls
defaultコンテキストと新しく作成したmy-contextを含むコンテキストのリストが表示されます。出力は次のようになります:
NAME DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR
default * Current DOCKER_HOST unix:///var/run/docker.sock swarm
my-context unix:///var/run/docker.sock
defaultの横にあるアスタリスク (*) は、それが現在アクティブなコンテキストであることを示しています。コンテキストの切り替え方法は後のステップで学びます。
コンテキストの説明を更新
このステップでは、前のステップで作成した Docker コンテキストの説明を更新します。コンテキストに説明を追加することは、特に複数のコンテキストがある場合に、そのコンテキストの用途を覚えておくのに役立ちます。
Docker コンテキストを更新するには、docker context updateコマンドを使用します。このコマンドには、更新したいコンテキストの名前と変更したいオプションが必要です。ここではmy-contextコンテキストを更新し、説明を追加します。
ターミナルを開き、次のコマンドを実行してください:
docker context update my-context --description "My local Docker context"
このコマンドはmy-contextコンテキストを更新し、その説明を"My local Docker context"に設定します。
コマンドを実行すると、更新が確認できる次のような出力が表示されます:
my-context
Successfully updated context "my-context"
では、説明が更新されたことを確認しましょう。再びdocker context lsコマンドを使用してコンテキストをリスト表示し、説明を確認できます:
docker context ls
これでmy-contextに関連付けられた説明"My local Docker context"が表示されるはずです。出力は次のようになります:
NAME DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR
default * Current DOCKER_HOST unix:///var/run/docker.sock swarm
my-context My local Docker context unix:///var/run/docker.sock
説明を追加することは、Docker コンテキストを整理するための良いプラクティスです。
コンテキストの Docker エンドポイントを更新
このステップでは、my-contextに関連付けられた Docker エンドポイントを更新します。実際のシナリオではリモートの Docker デーモンを指すようにエンドポイントを更新する場合がありますが、この実験では、依然としてローカルデーモンを指す少し異なる形式に変更することでプロセスを実演します。これにより、必要に応じて接続詳細を変更する方法を示します。
Docker エンドポイントを更新するには、再びdocker context updateコマンドを使用しますが、今回は新しいエンドポイントを指定した--docker hostオプションを追加します。エンドポイントをunix:///var/run/docker.sockからunix://var/run/docker.sockに変更します(unix:の後の余分なスラッシュを削除します)。
ターミナルを開き、次のコマンドを実行してください:
docker context update my-context --docker host=unix://var/run/docker.sock
このコマンドはmy-contextコンテキストを更新し、その Docker エンドポイントを変更します。
コマンドを実行すると、更新が確認できる次のような出力が表示されます:
my-context
Successfully updated context "my-context"
では、Docker エンドポイントが更新されたことを確認しましょう。再びdocker context lsコマンドを使用してコンテキストをリスト表示し、エンドポイントを確認できます:
docker context ls
これでmy-contextに関連付けられた更新された Docker エンドポイントunix://var/run/docker.sockが表示されるはずです。出力は次のようになります:
NAME DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR
default * Current DOCKER_HOST unix:///var/run/docker.sock swarm
my-context My local Docker context unix://var/run/docker.sock
エンドポイントの更新は、ローカル接続からリモート接続に切り替えるなど、Docker コンテキストが Docker デーモンに接続する方法を変更する必要がある場合に重要です。
更新されたコンテキスト設定の確認
この最終ステップでは、my-contextの説明と Docker エンドポイントが正しく更新されていることを包括的に確認します。特定のコンテキストに関する詳細情報を提供するdocker context inspectコマンドを使用します。
ターミナルを開き、次のコマンドを実行してください:
docker context inspect my-context
このコマンドはmy-contextの設定詳細を含む JSON ドキュメントを出力します。この出力内のDescriptionフィールドとDocker.Endpointフィールドを確認します。
出力は次のようになります(Docker のバージョンや環境によって若干異なる場合があります):
[
{
"Name": "my-context",
"Metadata": {
"Description": "My local Docker context"
},
"Endpoints": {
"docker": {
"Host": "unix://var/run/docker.sock"
}
},
"TLSMaterial": {},
"Storage": "my-context"
}
]
出力を確認し、Descriptionフィールドが"My local Docker context"、Docker.Endpointフィールドが"unix://var/run/docker.sock"であることを確認してください。これにより、前のステップで行った更新が成功したことが確認できます。
このステップで、Docker コンテキストの作成と更新に関する実験は完了です。新しいコンテキストの作成、説明の追加、Docker エンドポイントの変更方法を学びました。Docker コンテキストを理解することは、異なる Docker 環境への接続を管理する上で重要です。
まとめ
この実験では、docker context createコマンドを使用して新しい Docker コンテキストを作成する方法を学びました。具体的には、名前と Docker エンドポイントを指定してコンテキストを作成しました。その後、docker context lsコマンドで利用可能なすべてのコンテキストをリスト表示することで、新しいコンテキストの作成を確認しました。
作成後、既存のコンテキスト設定を変更する方法としてdocker context updateコマンドを使用しました。特に、新しく作成したコンテキストの説明文と Docker エンドポイントを更新しました。最後に、再度コンテキストをリスト表示し、出力の変化を観察することで、これらの更新が正常に適用されたことを確認しました。



