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

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

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

Введение

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

После создания нового контекста вы попрактикуетесь в его экспорте. Вы узнаете, как экспортировать контекст в файл для последующего использования или обмена, а также как экспортировать контекст напрямую в стандартный вывод (STDOUT). Этот практический опыт продемонстрирует применение команды docker context export для управления и обмена вашими Docker-окружениями.


Skills Graph

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

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

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

По умолчанию ваш Docker CLI подключается к локальному демону Docker. Мы можем увидеть текущий контекст с помощью команды docker context ls.

docker context ls

Вы должны увидеть вывод, похожий на этот, указывающий, что активен контекст по умолчанию:

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

Теперь давайте создадим новый контекст. Мы создадим контекст с именем my-context. В этом примере мы всё равно укажем его на локальный демон Docker, но в реальной ситуации вы могли бы указать его на удалённый демон.

Мы используем команду docker context create, за которой следует имя контекста и конечная точка.

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

После создания контекста вы должны увидеть сообщение с подтверждением:

my-context
Successfully created context "my-context"

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

docker context ls

Теперь вы должны увидеть как default, так и my-context в списке.

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

Чтобы переключиться на новый контекст, мы используем команду docker context use, за которой следует имя контекста.

docker context use my-context

Вы увидите сообщение, подтверждающее смену контекста:

my-context
Current context is now "my-context"

Наконец, давайте ещё раз выведем список контекстов, чтобы убедиться, что my-context теперь активен (обозначается звёздочкой *).

docker context ls

Вывод должен показать my-context как активный контекст:

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

Экспорт контекста Docker в файл

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

Мы экспортируем контекст my-context, созданный на предыдущем шаге. Для этого используем команду docker context export, за которой следует имя контекста и путь к файлу для сохранения. Мы сохраним его в файл my-context.dockercontext в директории ~/project.

docker context export my-context > ~/project/my-context.dockercontext

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

Чтобы убедиться, что файл создан, мы можем вывести список файлов в директории ~/project с помощью команды ls.

ls ~/project/

В списке файлов вы должны увидеть my-context.dockercontext.

Мы также можем просмотреть содержимое экспортированного файла контекста с помощью команды cat.

cat ~/project/my-context.dockercontext

Вывод покажет конфигурацию my-context в формате JSON. Она будет содержать информацию о контексте, такую как его имя и конечную точку Docker.

{
  "Name": "my-context",
  "Metadata": null,
  "Endpoints": {
    "docker": {
      "Host": "unix:///var/run/docker.sock",
      "SkipTLSVerify": false
    }
  },
  "TLSMaterial": null
}

Этот экспортированный файл теперь можно использовать для импорта данного контекста на другой машине с помощью команды docker context import.

Экспорт контекста Docker в STDOUT

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

Мы снова используем команду docker context export с ранее созданным контекстом my-context. На этот раз мы не будем перенаправлять вывод в файл.

docker context export my-context

Выполнение этой команды выведет JSON-представление конфигурации my-context прямо в терминал.

{
  "Name": "my-context",
  "Metadata": null,
  "Endpoints": {
    "docker": {
      "Host": "unix:///var/run/docker.sock",
      "SkipTLSVerify": false
    }
  },
  "TLSMaterial": null
}

Этот вывод содержит те же данные, которые сохранялись в файл my-context.dockercontext на предыдущем шаге. Экспорт в STDOUT — удобный способ быстро проверить конфигурацию контекста.

Вы также можете передать этот вывод другим командам для дальнейшей обработки. Например, можно использовать jq для парсинга JSON или grep для поиска конкретной информации.

Например, чтобы найти конечную точку Docker в экспортированном контексте:

docker context export my-context | grep "unix:///var/run/docker.sock"

Эта команда экспортирует контекст в STDOUT, а затем с помощью grep найдёт строку, содержащую "unix:///var/run/docker.sock". Вывод будет следующим:

      "Host": "unix:///var/run/docker.sock",

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

Итоги

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

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