Настройте и запустите 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 в этих контейнерах. Имея так много доступных инструментов, я очень уверен, что сообщество быстро их изучит!