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



