docker context update コマンドでコンテキスト設定を変更する方法

DockerDockerBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、既存の Docker コンテキストの設定をdocker context updateコマンドを使用して変更する方法を探求します。まず、作業用の新しい Docker コンテキストを作成することから始めます。

コンテキストの作成後、その説明を更新する方法と、接続先の Docker エンドポイントを変更する方法を実演します。最後に、コンテキスト設定が正常に更新されたことを確認します。このハンズオン演習を通じて、異なる Docker デーモンに接続するための Docker コンテキストの管理と変更に関する実践的な経験を得ることができます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/ls -.-> lab-555136{{"docker context update コマンドでコンテキスト設定を変更する方法"}} docker/inspect -.-> lab-555136{{"docker context update コマンドでコンテキスト設定を変更する方法"}} docker/create -.-> lab-555136{{"docker context update コマンドでコンテキスト設定を変更する方法"}} docker/system -.-> lab-555136{{"docker context update コマンドでコンテキスト設定を変更する方法"}} end

新しい 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 エンドポイントを更新しました。最後に、再度コンテキストをリスト表示し、出力の変化を観察することで、これらの更新が正常に適用されたことを確認しました。