Как использовать команду docker context rm для удаления контекстов

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

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

Введение

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/ls -.-> lab-555134{{"Как использовать команду docker context rm для удаления контекстов"}} docker/rm -.-> lab-555134{{"Как использовать команду docker context rm для удаления контекстов"}} docker/create -.-> lab-555134{{"Как использовать команду docker context rm для удаления контекстов"}} docker/system -.-> lab-555134{{"Как использовать команду docker context rm для удаления контекстов"}} end

Создание нового контекста Docker

На этом шаге мы научимся создавать новый контекст Docker. Контекст Docker — это способ управления подключениями к различным демонам Docker. По умолчанию Docker использует контекст default, который подключается к локальному демону Docker. Вы можете создавать новые контексты для подключения к удалённым демонам Docker или другим инструментам оркестрации.

Для создания нового контекста Docker используется команда docker context create. Базовый синтаксис: docker context create <имя_контекста>. Давайте создадим новый контекст с именем my-context.

docker context create my-context

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

my-context
Successfully created context "my-context"

Эта команда создаёт новый файл конфигурации контекста в директории настроек Docker. В данный момент этот контекст указывает на тот же локальный демон Docker, что и контекст default. В следующих шагах мы рассмотрим, как настраивать контексты для подключения к различным средам Docker.

Просмотр существующих контекстов Docker

На этом шаге мы научимся выводить список существующих контекстов Docker. Это полезно для просмотра доступных контекстов и определения текущего активного контекста.

Для вывода списка контекстов Docker используется команда docker context ls.

docker context ls

После выполнения команды вы увидите таблицу с перечнем доступных контекстов. В выводе будут указаны имя контекста, описание, конечная точка (endpoint) и информация о том, является ли контекст текущим. Вы должны увидеть контекст default и созданный на предыдущем шаге контекст my-context. Символ * рядом с именем контекста указывает, что это текущий активный контекст.

NAME                DESCRIPTION                               DOCKER ENDPOINT                  KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST environment           unix:///var/run/docker.sock
my-context          Docker context "my-context"               unix:///var/run/docker.sock

Эта команда помогает отслеживать различные среды Docker, к которым можно подключиться.

Удаление конкретного контекста Docker

На этом шаге мы научимся удалять конкретный контекст Docker. Это полезно для очистки контекстов, которые больше не нужны.

Для удаления контекста Docker используется команда docker context rm, за которой следует имя удаляемого контекста. Давайте удалим контекст my-context, созданный на предыдущих шагах.

docker context rm my-context

После выполнения команды вы увидите подтверждение удаления контекста.

my-context

Теперь давайте снова выведем список контекстов, чтобы убедиться, что my-context был удалён.

docker context ls

Теперь в выводе должен отображаться только контекст default.

NAME                DESCRIPTION                               DOCKER ENDPOINT                  KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST environment           unix:///var/run/docker.sock

Это демонстрирует, как удалить конкретный контекст Docker.

Попытка удалить текущий контекст Docker без принудительного удаления

На этом шаге мы попытаемся удалить текущий активный контекст Docker без использования опции принудительного удаления. Это продемонстрирует поведение Docker при попытке удалить контекст, который в данный момент используется.

Сначала давайте подтвердим текущий контекст.

docker context ls

Вы должны увидеть, что контекст default помечен звёздочкой (*), что указывает на его текущую активность.

Теперь попробуем удалить контекст default с помощью команды docker context rm.

docker context rm default

Скорее всего, вы увидите сообщение об ошибке, похожее на это:

Error: context "default" is currently in use

Эта ошибка возникает потому, что Docker предотвращает удаление текущего активного контекста, чтобы избежать прерывания текущих операций Docker. Для удаления текущего контекста необходимо использовать опцию принудительного удаления, которую мы рассмотрим в следующем шаге.

Принудительное удаление текущего контекста Docker

На этом шаге мы научимся принудительно удалять текущий активный контекст Docker. Как мы видели ранее, удалить текущий контекст без использования опции принудительного удаления невозможно.

Для принудительного удаления текущего контекста Docker используется команда docker context rm с флагом -f или --force, за которым следует имя контекста. Давайте принудительно удалим контекст default.

docker context rm -f default

После выполнения команды вы увидите подтверждение удаления контекста.

default

Теперь снова выведем список контекстов, чтобы убедиться, что контекст default был удалён.

docker context ls

Скорее всего, вы увидите сообщение об отсутствии доступных контекстов или о том, что Docker переключился на другой контекст по умолчанию (если он существует). В данной среде удаление контекста default приведёт к ошибке при последующем выводе списка контекстов, так как не останется активного контекста.

Error: No contexts available. Create a context, or use --help for more information.

Это демонстрирует, как принудительно удалить текущий контекст Docker.

Итоги

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

Лабораторная работа продолжилась демонстрацией удаления конкретного контекста Docker с помощью docker context rm. Мы также рассмотрели поведение при попытке удалить текущий активный контекст без опции принудительного удаления и в заключение изучили принудительное удаление текущего контекста Docker.