Поиск по сайту:

Настройте и запустите podman в Windows с помощью Linux


Разрешите гостям WSL 2 запускать команды podman, skopeo или buildah из Windows, используя выбранный вами дистрибутив Linux.

WSL 2, вторая версия подсистемы Windows для Linux, позволяет запускать среду Linux непосредственно в Windows без использования виртуальной машины (ВМ). Он также прекрасно интегрируется с Windows и предоставляет вам доступ к большинству инструментов командной строки, утилит и приложений, к которым вы привыкли в Linux.

В этом руководстве показано, как разрешить гостям WSL 2 запускать команды podman, skopeo или buildah из Windows, используя дистрибутив Linux вашего компьютера. выбор (доступен в магазине Microsoft). Начиная с исходной ОС Fedora Linux, мне было любопытно, как включить и использовать наиболее знакомые мне инструменты из Windows.

Предварительное условие: WSL 2.

Чтобы установить WSL 2, перейдите на страницу установки WSL.

Используйте Powershell, чтобы убедиться, что WSL 2 включен по умолчанию:

PS> wsl –set-default-version 2

Информацию о ключевых различиях между WSL 1 и WSL 2 см. в документации WSL.

Подсистема Windows для Linux прошла долгий путь. Microsoft приложила немало усилий, чтобы сделать разделение между основной ОС Windows и гостевой операционной системой Linux практически невидимым. Специальные драйверы в ядрах каждой системы упрощают запуск команд между различными оболочками и командными окнами и обеспечивают взаимный доступ к файловым системам.

Вы можете убедиться, что правильно используете ядро WSL 2, выполнив следующую команду и выведя ее в любом из гостевых компьютеров:

$ uname -a
Linux BLD 5.10.16.3-microsoft.standard-WSL2 #1 SMP Fri Apr 2 22:23:49 
UTC 2021 x86_64 x86_64 GNU/Linux

Гости WSL 1 сообщают о версии ядра 4.14 или аналогичной.

Небольшие изменения в гостевых системах могут сделать интеграцию еще более плавной, включая символические ссылки на различные файлы домашнего каталога (.aws, .sh, .config и т. д.). Есть подсказка, как этого можно добиться прямо из каталога $HOME:

(Стивен Каппетт, < font color="#1155cc">CC BY-SA 4.0)

Установите дистрибутив Linux

Чтобы установить дистрибутив Linux, найдите свой любимый в Microsoft Store.

(Стивен Каппетт, < font color="#1155cc">CC BY-SA 4.0)

Для этой статьи я использую Fedora, но можно попробовать и другие дистрибутивы. Podman хорошо работает во всех дистрибутивах, поэтому вы можете использовать любой дистрибутив, с которым вы наиболее знакомы. Могут потребоваться некоторые незначительные изменения конфигурации, но они обычно документируются в документации дистрибутива и podman. Я выбрал Fedora, потому что это дистрибутив, который не требует дополнительной настройки для работы последней версии podman.

При первом запуске устанавливается ВМ и связанные с ней технологии. Вам будет предложено выбрать пароль для первого пользователя (который получает доступ к sudo).

Установить подман

После того, как ваш дистрибутив Linux установлен и настроен пользователем, вы можете установить podman как обычно:

$sudo dnf install podman

Через несколько секунд podman будет установлен и готов к работе. Вы можете проверить, что все работает как положено:

$ podman info
host:
  arch: amd64
  buildahVersion: 1.22.3
  cgroupControllers: []
  cgroupManager: cgroupfs
  cgroupVersion: v1
[...]
version:
  APIVersion: 3.3.1
  OsArch: linux/amd64
  Version: 3.3.1

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

Благодаря интеграции WSL podman доступен и может использоваться даже из PowerShell или командной строки:

(Стивен Каппетт, CC BY-SA 4.0)

Установка и использование команд buildah и skopeo — это один и тот же процесс.

Тест занятого ящика

В качестве простого теста, позволяющего увидеть podman в работе, вы можете извлечь и запустить контейнер Busybox. BusyBox — это проект с открытым исходным кодом (GPL), обеспечивающий простые реализации почти 400 распространенных команд, включая ls, mv, ln, mkdir, more, ps, gzip, bzip2, tar и grep . , что делает его подходящей минимальной средой для контейнеров и простых тестов, подобных этому.

Сначала найдите в репозитории образов по умолчанию контейнер Busybox. Вы можете сделать это либо в терминале Linux, либо в Powershell.

$ podman search busybox
INDEX       NAME                             DESCRIPTION                     
docker.io   docker.io/library/busybox        Busybox base image                  
docker.io   docker.io/radial/busyboxplus     Full-chain...
docker.io   docker.io/yauritux/busybox-curl  Busybox with CURL

Запустите тот, который хотите попробовать:

$ podman run -it docker.io/library/busybox
/ #

Вы можете использовать контейнер, выполнить несколько команд, чтобы убедиться, что все работает как положено, а затем выйти из него с помощью команды exit.

Начать

Признаюсь, я был удивлен, насколько легко здесь работали вместе текущие дистрибутивы Linux, podman и подсистема Windows. Очевидно, что большая работа была проделана над созданием контейнерных инструментов Windows и их интеграцией с Linux. Я надеюсь, что это руководство поможет другим легко добраться до этой же отправной точки и начать работать продуктивно.

Есть много хороших кандидатов для более глубокой доработки, включая работу с томами, раскрытие сетевых служб между гостем и хостом и раскрытие возможностей Linux в этих контейнерах. Имея так много доступных инструментов, я очень уверен, что сообщество быстро их изучит!

Статьи по данной тематике: