Как использовать команду docker context update для изменения конфигурации контекста

DockerDockerBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этой лабораторной работе мы рассмотрим, как изменить конфигурацию существующих Docker-контекстов с помощью команды docker context update. Начнем с создания нового Docker-контекста для работы.

После создания контекста мы покажем, как обновить его описание и изменить Docker-конечную точку (endpoint), к которой он подключается. В завершение мы проверим, что конфигурация контекста успешно обновлена. Это практическое упражнение даст опыт управления и изменения 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 использует контекст default, который подключается к локальному Docker-демону. Однако вы можете создавать новые контексты для подключения к удалённым Docker-демонам или другим платформам оркестрации контейнеров.

Для создания нового Docker-контекста используется команда docker context create. Эта команда требует указания имени нового контекста и конечной точки (endpoint) Docker-демона, к которому он должен подключаться. В рамках этой лабораторной работы мы создадим контекст с именем my-context, подключающийся к локальному Docker-демону.

Откройте терминал и выполните следующую команду:

docker context create my-context --docker host=unix:///var/run/docker.sock

Эта команда создаёт новый контекст с именем my-context. Опция --docker host=unix:///var/run/docker.sock указывает, что этот контекст должен подключаться к Docker-демону через Unix-сокет по пути /var/run/docker.sock. Это стандартное расположение Docker-сокета в большинстве Linux-систем.

После выполнения команды вы должны увидеть вывод, подтверждающий успешное создание контекста:

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 local Docker context" для контекста my-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-эндпоинта контекста

На этом шаге мы обновим Docker-эндпоинт, связанный с нашим контекстом my-context. Хотя в реальных сценариях вы можете изменить эндпоинт для подключения к удалённому 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

Теперь вы увидите обновлённый Docker-эндпоинт unix://var/run/docker.sock для контекста my-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-контекста к демону, например, при переходе с локального подключения на удалённое.

Проверка обновлённой конфигурации контекста

В этом завершающем шаге мы проведём комплексную проверку контекста my-context, чтобы убедиться, что как описание, так и Docker-эндпоинт были корректно обновлены. Мы воспользуемся командой docker context inspect, которая предоставляет детальную информацию о конкретном контексте.

Откройте терминал и выполните следующую команду:

docker context inspect my-context

Эта команда выведет JSON-документ с деталями конфигурации контекста my-context. Нам нужно проверить поля 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-контекст с помощью команды docker context create, указав имя и Docker-эндпоинт. Затем мы проверили создание нового контекста, выведя список всех доступных контекстов командой docker context ls.

После создания мы рассмотрели, как изменить конфигурацию существующего контекста с помощью команды docker context update. В частности, мы обновили описание и Docker-эндпоинт для нового контекста. В завершение мы подтвердили успешное применение изменений, повторно выведя список контекстов и проверив обновлённые параметры в выводе.