Введение
В этой лабораторной работе (Lab) вы научитесь эффективно управлять различными конечными точками (endpoints) Docker с помощью команды docker context create. Вы изучите, как создать новый контекст, указывающий на локальный демон Docker, что позволит явно определять и переключаться между подключениями.
Кроме того, вы узнаете, как упростить создание контекстов, используя конфигурацию существующих контекстов. Это включает создание нового контекста путем копирования из существующего, а также создание контекста, который использует конфигурацию конечной точки Docker из другого контекста, обеспечивая гибкость и эффективность при управлении вашими Docker-окружениями.
Создание контекста с локальной конечной точкой Docker
На этом шаге вы узнаете, как создать контекст Docker, указывающий на локальный демон Docker. Контекст Docker — это способ управления подключениями к различным демонам Docker (локальным или удалённым). По умолчанию Docker использует контекст default, который указывает на локальный демон. Однако вы можете создавать новые контексты для явного определения подключений.
Сначала проверим существующие контексты.
docker context ls
Вы должны увидеть список с контекстом default.
Теперь создадим новый контекст с именем my-local-context, указывающий на локальную конечную точку Docker. Мы используем команду docker context create с флагом --docker для указания конечной точки Docker. Поскольку мы подключаемся к локальному демону, можно использовать стандартный путь к сокету.
docker context create my-local-context --docker "host=unix:///var/run/docker.sock"
После создания контекста можно снова вывести список контекстов, чтобы увидеть новый.
docker context ls
Теперь вы должны увидеть как default, так и my-local-context. Звёздочка (*) обозначает текущий активный контекст, которым пока остаётся default.
Чтобы использовать новый контекст, переключитесь на него с помощью команды docker context use.
docker context use my-local-context
Теперь, если снова вывести список контекстов, my-local-context должен быть активным.
docker context ls
Можно убедиться, что используется my-local-context, выполнив простую команду Docker, например, вывод списка образов.
docker images
Эта команда теперь выполняется для демона Docker, указанного в my-local-context.
Наконец, при необходимости можно вернуться к контексту по умолчанию.
docker context use default
Создание контекста на основе существующего
На этом шаге вы узнаете, как создать новый контекст Docker, копируя конфигурацию из существующего контекста. Это может быть полезно, если вам нужно создать слегка изменённую версию существующего контекста без необходимости заново указывать все параметры.
Сначала убедимся, что у нас есть контекст my-local-context, созданный на предыдущем шаге. Для этого выведем список контекстов:
docker context ls
Теперь создадим новый контекст с именем my-copied-context на основе my-local-context. Используем команду docker context create с флагом --from, указав имя существующего контекста:
docker context create my-copied-context --from my-local-context
После создания нового контекста снова выведем список, чтобы увидеть my-copied-context:
docker context ls
Теперь вы должны видеть три контекста: default, my-local-context и my-copied-context. Контекст my-copied-context будет иметь ту же конфигурацию конечной точки Docker, что и my-local-context.
Для проверки конфигурации можно переключиться на новый контекст:
docker context use my-copied-context
Снова выведем список контекстов, чтобы убедиться, что my-copied-context стал активным:
docker context ls
Также можно просмотреть конфигурацию нового контекста с помощью команды docker context inspect:
docker context inspect my-copied-context
Эта команда покажет детали контекста, включая используемую конечную точку Docker. Вы увидите, что контекст настроен на использование локального сокета Docker, как и my-local-context.
Наконец, вернёмся к контексту по умолчанию для следующего шага:
docker context use default
Создание контекста с использованием конфигурации конечной точки Docker из другого контекста
На этом шаге вы узнаете, как создать новый контекст Docker с явным указанием конфигурации конечной точки, возможно используя информацию из другого контекста в качестве образца. В отличие от предыдущего шага, где копировался весь контекст, этот метод позволяет более детально контролировать конфигурацию нового контекста.
Сначала выведем список существующих контекстов:
docker context ls
Вы должны увидеть контексты: default, my-local-context и my-copied-context.
Теперь создадим новый контекст с именем my-explicit-context. Мы явно укажем конечную точку Docker с помощью флага --docker, аналогично Шагу 1. Можно использовать конфигурацию существующего контекста (например my-local-context) для получения правильных параметров конечной точки, хотя в данном случае это стандартный локальный сокет.
docker context create my-explicit-context --description "Context with explicit local endpoint" --docker "host=unix:///var/run/docker.sock"
Мы также добавили описание с помощью флага --description, чтобы сделать назначение контекста более понятным.
Снова выведем список контекстов, чтобы увидеть новый my-explicit-context:
docker context ls
Теперь вы должны видеть четыре контекста: default, my-local-context, my-copied-context и my-explicit-context.
Переключимся на новый контекст, чтобы сделать его активным:
docker context use my-explicit-context
Ещё раз выведем список контекстов для подтверждения, что my-explicit-context стал активным:
docker context ls
Можно также просмотреть конфигурацию my-explicit-context, включая добавленное описание:
docker context inspect my-explicit-context
Этот пример демонстрирует, как можно создать контекст, явно указывая конфигурацию конечной точки Docker, что особенно полезно при подключении к удалённым демонам Docker или когда требуется точный контроль над параметрами подключения.
Резюме
В этой лабораторной работе вы научились управлять конечными точками Docker с помощью команды docker context create. Вы начали с создания нового контекста my-local-context, явно указывающего на локальный демон Docker, продемонстрировав как определить соединение с использованием флага --docker и пути к сокету. Вы попрактиковались в выводе списка существующих контекстов, переключении между ними с помощью docker context use и проверке активного контекста. Также вы увидели, как Docker-команда (например, docker images) выполняется в рамках текущего активного контекста.
Кроме того, вы изучили способ создания нового контекста на основе конфигурации существующего, что является удобным методом для работы с уже настроенными параметрами соединения. Это позволяет эффективно управлять конфигурациями конечных точек Docker и повторно использовать их.



