Введение
В этой лабораторной работе вы научитесь эффективно использовать команду docker context import. Мы начнём с создания и экспорта Docker-контекста в файл, демонстрируя процесс упаковки конфигураций вашего контекста.
После экспорта вы попрактикуетесь в импорте этого контекста обратно в Docker — как из экспортированного файла, так и напрямую из стандартного ввода. В завершение вы убедитесь, что импортированный контекст корректно распознаётся и доступен для использования в вашей Docker-среде.
Создание и экспорт 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, присвоив ему новое имя для различия.



