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

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

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

Введение

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

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


Skills Graph

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

Создание и экспорт Docker-контекста

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

Сначала создадим новый Docker-контекст с именем my-context, настроенный для подключения к локальному Docker-демону по умолчанию.

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

Эта команда создаёт новый контекст my-context и указывает Docker-хост в виде стандартного Unix-сокета для локального демона.

Далее экспортируем созданный контекст в файл my-context.tar.gz.

docker context export my-context -o ~/project/my-context.tar.gz

Эта команда экспортирует my-context в tar.gz-файл в директории ~/project. Флаг -o задаёт путь к выходному файлу.

Убедиться в успешном создании файла можно, проверив содержимое директории ~/project.

ls ~/project/

В выводе должен отображаться файл my-context.tar.gz.

Импорт экспортированного контекста из файла

На предыдущем шаге мы экспортировали Docker-контекст в файл my-context.tar.gz. В этом шаге мы импортируем этот контекст обратно в Docker из файла.

Перед импортом давайте удалим существующий my-context, чтобы смоделировать ситуацию импорта отсутствующего контекста.

docker context rm my-context

Эта команда удаляет Docker-контекст с именем my-context. Вы можете проверить его удаление, повторно выведя список контекстов.

docker context ls

В списке больше не должно отображаться my-context.

Теперь импортируем контекст из файла ~/project/my-context.tar.gz.

docker context import my-context-from-file ~/project/my-context.tar.gz

Эта команда импортирует контекст из указанного файла и присваивает импортированному контексту имя my-context-from-file.

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

docker context ls

Теперь в списке контекстов должен появиться my-context-from-file.

Импорт экспортированного контекста через stdin

На предыдущем шаге мы импортировали Docker-контекст из файла. Альтернативный способ импорта — передача данных экспортированного контекста напрямую в команду docker context import через стандартный ввод (stdin). Этот метод полезен, когда нужно импортировать контекст без предварительного сохранения в файл.

Сначала удалим контекст, импортированный на предыдущем шаге, чтобы избежать конфликтов.

docker context rm my-context-from-file

Теперь воспользуемся командой cat для чтения содержимого файла my-context.tar.gz и передадим его в команду docker context import через конвейер.

cat ~/project/my-context.tar.gz | docker context import my-context-from-stdin -

В этой команде:

  • cat ~/project/my-context.tar.gz читает содержимое файла
  • Символ конвейера | передаёт вывод команды cat на вход команды docker context import
  • Дефис - в конце указывает команде читать данные контекста из стандартного ввода
  • Импортированному контексту присваивается имя my-context-from-stdin

После выполнения команды выведите список Docker-контекстов для проверки успешного импорта.

docker context ls

Теперь в списке контекстов должен отображаться my-context-from-stdin.

Проверка импортированного контекста

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

Сначала выведем список доступных контекстов, чтобы убедиться в наличии обоих: my-context-from-file и my-context-from-stdin.

docker context ls

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

Теперь переключимся на контекст, импортированный через стандартный ввод — my-context-from-stdin.

docker context use my-context-from-stdin

Эта команда устанавливает текущий Docker-контекст как my-context-from-stdin. Все последующие Docker-команды будут использовать этот контекст для подключения к Docker-демону.

Для проверки работоспособности контекста выполним простую Docker-команду, например, вывод списка работающих контейнеров. Поскольку мы подключаемся к локальному Docker-демону, результат должен совпадать с выводом команды docker ps без указания контекста.

docker ps

Если контекст настроен правильно, команда выполнится успешно и отобразит список работающих контейнеров (если они есть).

Наконец, вернёмся к контексту по умолчанию.

docker context use default

Эта команда переключает текущий Docker-контекст обратно на локальный демон по умолчанию.

Итоги

В этой лабораторной работе мы изучили управление Docker-контекстами: их создание, экспорт и импорт. Мы начали с создания нового Docker-контекста с именем my-context, настроенного для подключения к локальному демону, а затем экспортировали этот контекст в файл формата tar.gz.

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