{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Yuriy Gavrilov: posts tagged Podman",
    "_rss_description": "Welcome to my personal place for love, peace and happiness 🤖 Yuiry Gavrilov",
    "_rss_language": "en",
    "_itunes_email": "yvgavrilov@gmail.com",
    "_itunes_categories_xml": "",
    "_itunes_image": "https:\/\/gavrilov.info\/pictures\/userpic\/userpic-square@2x.jpg?1643451008",
    "_itunes_explicit": "no",
    "home_page_url": "https:\/\/gavrilov.info\/tags\/podman\/",
    "feed_url": "https:\/\/gavrilov.info\/tags\/podman\/json\/",
    "icon": "https:\/\/gavrilov.info\/pictures\/userpic\/userpic@2x.jpg?1643451008",
    "authors": [
        {
            "name": "Yuriy Gavrilov - B[u]g - for charity.gavrilov.eth",
            "url": "https:\/\/gavrilov.info\/",
            "avatar": "https:\/\/gavrilov.info\/pictures\/userpic\/userpic@2x.jpg?1643451008"
        }
    ],
    "items": [
        {
            "id": "277",
            "url": "https:\/\/gavrilov.info\/all\/lima-glubokiy-analiz-ot-zameny-docker-desktop-do-svyazki-s-podma\/",
            "title": "Lima: Глубокий анализ. От замены Docker Desktop до связки с Podman",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"https:\/\/gavrilov.info\/pictures\/Snimok-ekrana-2025-09-04-v-23.47.11.png\" width=\"1382\" height=\"502\" alt=\"\" \/>\n<\/div>\n<p>В экосистеме разработки на macOS и Linux постоянно появляются инструменты, призванные упростить и ускорить рабочие процессы. Один из таких инструментов, быстро набравший популярность — <b>Lima<\/b>. Изначально созданный как простой способ запускать <b>Li<\/b>nux на <b>Ma<\/b>c, Lima превратился в мощное и гибкое решение для управления виртуальными машинами, с особым фокусом на контейнеризацию.<\/p>\n<p>В этой статье мы разберем, что такое Lima, для чего он нужен, сравним его с аналогами, раскроем полезные трюки и фишки, а также проанализируем, как и когда его стоит использовать в связке с Podman.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/gavrilov.info\/pictures\/demo-1.gif\" width=\"1194\" height=\"781\" alt=\"\" \/>\n<\/div>\n<p>Не большой бонус от Kimi 2.0: <a href=\"https:\/\/a.gavrilov.info\/data\/posts\/lima.html\">lima от kimi 2.0<\/a><\/p>\n<p>А вот полный отчет в режиме Research: <a href=\"https:\/\/a.gavrilov.info\/data\/posts\/Lima_deep_research_by_kimi_2.0.pdf\">Lima анализ от kimi 2.0.pdf<\/a><\/p>\n<h4>1. Назначение Lima: Больше, чем просто виртуальная машина<\/h4>\n<p>Lima — это утилита командной строки (CLI), которая упрощает создание и управление Linux-виртуальными машинами, преимущественно на macOS, но также и на Linux. Его основная философия — минимализм и ориентация на разработчика <a href=\"https:\/\/signup.omerxx.com\/posts\/limavm-is-probably-the-best-macos-virtual-machine-i-ve-ever-used\">signup.omerxx.com<\/a>. Lima не навязывает громоздкие графические интерфейсы, а предоставляет простой и понятный CLI, который “не мешает работать”.<\/p>\n<p><b>Основные сценарии использования Lima:<\/b><\/p>\n<ul>\n<li><b>Запуск контейнеров:<\/b> Lima поставляется с предустановленным `containerd` и его CLI-клиентом `nerdctl` (совместимым по командам с Docker). Это позволяет запускать OCI-контейнеры “из коробки”.<\/li>\n<li><b>Альтернатива Docker Desktop:<\/b> Многие разработчики переходят на Lima, чтобы избежать лицензионных ограничений Docker Desktop и получить более легковесное и производительное решение <a href=\"https:\/\/spiffyeight77.com\/posts\/all\/2024\/11\/replacing-docker-desktop-on-macos-with-lima\">spiffyeight77.com<\/a>.<\/li>\n<li><b>Тестирование в среде Linux:<\/b> Запуск изолированной и чистой Linux-среды для сборки, тестирования или отладки приложений.<\/li>\n<li><b>Работа с Kubernetes:<\/b> Lima имеет шаблоны для быстрого развертывания легковесных дистрибутивов Kubernetes, таких как k3s или k8s.<\/li>\n<li><b>Запуск любых дистрибутивов Linux:<\/b> Lima позволяет легко запускать различные дистрибутивы, от Ubuntu и Debian до Arch Linux и Fedora, что делает его универсальным инструментом для исследования Linux-экосистемы <a href=\"https:\/\/sredevops.org\/en\/lima-the-easiest-way-to-run-any-linux-distro-kubernetes-k3s-and-even-docker-on-macos-and-linux-apple-silicon-m1-arm64-compatible\">sredevops.org<\/a>.<\/li>\n<\/ul>\n<h4>2. Ключевые преимущества и сравнение с аналогами<\/h4>\n<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"e2-text-table\">\n<tr>\n<td style=\"text-align: center\">Критерий<\/td>\n<td style=\"text-align: center\">Lima<\/td>\n<td style=\"text-align: center\">Docker Desktop (на macOS)<\/td>\n<td style=\"text-align: center\">Vagrant<\/td>\n<td style=\"text-align: center\">Multipass<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center\"><b>Философия<\/b><\/td>\n<td style=\"text-align: center\">Легковесный CLI-инструмент для запуска Linux VM с фокусом на контейнеры.<\/td>\n<td style=\"text-align: center\">Комплексный продукт с GUI для управления контейнерами.<\/td>\n<td style=\"text-align: center\">Универсальный менеджер VM для создания воспроизводимых сред.<\/td>\n<td style=\"text-align: center\">Быстрый запуск VM с Ubuntu, разрабатываемый Canonical.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center\"><b>Лицензия<\/b><\/td>\n<td style=\"text-align: center\">Open Source (MIT)<\/td>\n<td style=\"text-align: center\">Коммерческая для крупных компаний.<\/td>\n<td style=\"text-align: center\">Open Source (MIT)<\/td>\n<td style=\"text-align: center\">Open Source (GPLv3)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center\"><b>Производительность<\/b><\/td>\n<td style=\"text-align: center\">Высокая, особенно с `virtiofs` и `vz`. Низкое потребление ресурсов.<\/td>\n<td style=\"text-align: center\">Более ресурсоемкий, особенно GUI и фоновые процессы.<\/td>\n<td style=\"text-align: center\">Зависит от провайдера, часто более медленный запуск.<\/td>\n<td style=\"text-align: center\">Оптимизирована для Ubuntu, производительность хорошая.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center\"><b>Гибкость<\/b><\/td>\n<td style=\"text-align: center\">Очень высокая. Настройка через YAML, поддержка любых дистрибутивов.<\/td>\n<td style=\"text-align: center\">Ограниченная. Вы привязаны к VM от Docker.<\/td>\n<td style=\"text-align: center\">Высокая. Поддержка разных провайдеров (VirtualBox, VMware).<\/td>\n<td style=\"text-align: center\">Ограниченная. В основном ориентирован на Ubuntu.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center\"><b>Простота<\/b><\/td>\n<td style=\"text-align: center\">Просто начать, но требует понимания CLI и YAML для кастомизации.<\/td>\n<td style=\"text-align: center\">Очень просто для новичков благодаря GUI.<\/td>\n<td style=\"text-align: center\">Требует изучения `Vagrantfile` (Ruby).<\/td>\n<td style=\"text-align: center\">Очень простой CLI для базовых задач.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center\"><b>Интеграция<\/b><\/td>\n<td style=\"text-align: center\">Отличная интеграция с хост-системой (файлы, порты), но требует ручной настройки.<\/td>\n<td style=\"text-align: center\">Глубокая, бесшовная интеграция “из коробки”.<\/td>\n<td style=\"text-align: center\">Хорошая, но настройка может быть сложной.<\/td>\n<td style=\"text-align: center\">Простая, но менее гибкая интеграция.<\/td>\n<\/tr>\n<\/table>\n<p><b>Lima vs. Docker Desktop<\/b> — это главное сравнение для пользователей macOS. Lima выигрывает в производительности, гибкости и отсутствии лицензионных ограничений. Docker Desktop предлагает удобство “всё в одном” и графический интерфейс, что может быть предпочтительнее для новичков или в корпоративных средах, где стандартизирован один инструмент.<\/p>\n<h4>3. Трюки и фишки: Максимизируем пользу от Lima<\/h4>\n<p>Вся мощь Lima раскрывается через его декларативный файл конфигурации `lima.yaml`. Вот несколько ключевых возможностей, которые стоит использовать.<\/p>\n<h5>1. Шаблоны для быстрого старта<\/h5>\n<p>Вместо создания `YAML`-файла с нуля, можно использовать готовые шаблоны. Это самый быстрый способ начать работу.<\/p>\n<h2>Запустить VM с поддержкой Docker<\/h2>\n<pre class=\"e2-text-code\"><code class=\"\">limactl start template:\/\/docker<\/code><\/pre><h2>Запустить VM с Podman<\/h2>\n<pre class=\"e2-text-code\"><code class=\"\">limactl start template:\/\/podman<\/code><\/pre><h2>Запустить Arch Linux<\/h2>\n<pre class=\"e2-text-code\"><code class=\"\">limactl start template:\/\/archlinux<\/code><\/pre><h5>2. Выбор движка виртуализации на macOS<\/h5>\n<p>На macOS с Apple Silicon (M1\/M2\/M3) Lima может использовать нативный фреймворк виртуализации от Apple вместо QEMU. Это значительно снижает нагрузку на CPU и повышает производительность <a href=\"https:\/\/code.saghul.net\/2025\/02\/migrating-from-docker-desktop-to-colima-2025-update\">code.saghul.net<\/a>.<\/p>\n<p>Для этого в вашем `lima.yaml` укажите:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">vmType: &quot;vz&quot;<\/code><\/pre><p>Для файловой системы также рекомендуется использовать `virtiofs` для лучшей производительности.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">mountType: &quot;virtiofs&quot;<\/code><\/pre><h5>3. Гибкий файловый шаринг<\/h5>\n<p>Lima позволяет монтировать директории с хост-машины в VM. Вы можете указать, какие папки монтировать и доступны ли они для записи.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">mounts:\n  - location: &quot;~&quot;\n    writable: false\n  - location: &quot;~\/projects&quot;\n    writable: true<\/code><\/pre><p>Это позволяет редактировать код в любимом редакторе на macOS, а собирать и запускать его внутри Linux VM.<\/p>\n<h5>4. Проброс портов<\/h5>\n<p>Чтобы получить доступ к сервису, запущенному внутри VM, можно пробросить порты.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">portForwards:\n  # Пробросить порт 8080 из гостевой VM на порт 8080 хоста\n  - guestPort: 8080\n    hostPort: 8080\n  # Можно также указать конкретный IP\n  - guestPort: 8888\n    hostIP: &quot;127.0.0.1&quot;<\/code><\/pre><h5>5. Скрипты инициализации (`provision`)<\/h5>\n<p>Это одна из самых мощных функций. Вы можете выполнять скрипты при первом создании VM (`mode: system`) или при каждом её запуске (`mode: user`).<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">provision:\n  - mode: system\n    script: |\n      #!\/bin\/bash\n      apt-get update\n      apt-get install -y htop vim fish\n  - mode: user\n    script: |\n      #!\/bin\/bash\n      echo &quot;Welcome back to Lima!&quot;<\/code><\/pre><p>Это позволяет полностью автоматизировать настройку вашего рабочего окружения.<\/p>\n<h4>4. Lima и Podman: Синергия или избыточность?<\/h4>\n<p>Этот вопрос часто возникает у разработчиков. <b>Podman<\/b> — это альтернатива Docker для работы с контейнерами без демона. На Linux он работает нативно. На macOS ему, как и Docker, нужна Linux-виртуальная машина.<\/p>\n<p>`podman machine` — это встроенная в Podman команда, которая автоматически создает и управляет такой VM. Так зачем же здесь Lima?<\/p>\n<p><b>Случай 1: Когда достаточно `podman machine`<\/b><\/p>\n<p>Если вам просто нужна замена Docker с синтаксисом Podman и вы довольны стандартной VM (основанной на Fedora CoreOS), то `podman machine init` и `podman machine start` — это всё, что вам нужно. Это простое, интегрированное решение.<\/p>\n<p><b>Случай 2: Когда нужна связка Lima + Podman<\/b><\/p>\n<p>Связка Lima и Podman даёт <b>контроль и гибкость<\/b>. Вы используете Lima для создания и управления VM, а Podman-клиент на macOS настраиваете для работы с Podman-сервисом внутри этой VM.<\/p>\n<p>Это необходимо, когда:<\/p>\n<ol start=\"1\">\n<li><b>Нужен конкретный дистрибутив Linux:<\/b> Ваше приложение требует Ubuntu, CentOS, или Debian, а не Fedora CoreOS, которую использует `podman machine`. С Lima вы можете создать VM на базе любого дистрибутива, установить туда Podman и работать с ним.<\/li>\n<li><b>Требуется тонкая настройка VM:<\/b> Вам нужно выделить точное количество ядер CPU, памяти, настроить сложную сетевую конфигурацию или использовать специфические параметры монтирования. `lima.yaml` предоставляет полный контроль над этими параметрами.<\/li>\n<li><b>Нужны дополнительные сервисы в VM:<\/b> Вы хотите запустить в той же VM не только Podman, но и, например, базу данных, Redis или GitLab Runner <a href=\"https:\/\/nakame.dev\/infra\/lima-vm\/\">nakame.dev<\/a>. С помощью `provision` скриптов в Lima это легко автоматизировать в рамках одной конфигурации.<\/li>\n<li><b>Унификация окружения:<\/b> Вы уже используете Lima для других задач (например, для k3s) и хотите управлять всеми вашими VM единообразно через `limactl`.<\/li>\n<\/ol>\n<p><b>Как это работает на практике?<\/b><\/p>\n<ol start=\"1\">\n<li>Создается `lima.yaml` на основе шаблона `podman` или с нуля.<\/li>\n<li>В `provision` скрипте устанавливается `podman`.<\/li>\n<li>Запускается VM: `limactl start .\/my-podman-vm.yaml`.<\/li>\n<li>Podman-клиент на macOS настраивается на подключение к сокету внутри Lima VM.<\/li>\n<\/ol>\n<p><b>Итог по связке:<\/b> Lima и `podman machine` не являются прямыми конкурентами. `podman machine` — это простое решение “под ключ”. <b>Lima — это мощный бэкенд<\/b>, который может служить основой для Podman, когда стандартных возможностей `podman machine` недостаточно.<\/p>\n<h4>5. Заключение<\/h4>\n<p>Lima зарекомендовал себя как незаменимый инструмент для разработчиков на macOS и Linux. Он успешно занял нишу между тяжеловесными решениями вроде Vagrant и монолитными продуктами, как Docker Desktop.<\/p>\n<p><b>Ключевые выводы:<\/b><\/p>\n<ul>\n<li><b>Для пользователей macOS:<\/b> Lima — это быстрая, легковесная и бесплатная альтернатива Docker Desktop, предлагающая больше гибкости и контроля над средой исполнения контейнеров.<\/li>\n<li><b>Производительность:<\/b> Благодаря поддержке нативной виртуализации Apple (`vz`) и эффективных файловых систем (`virtiofs`), Lima обеспечивает почти нативную производительность.<\/li>\n<li><b>Гибкость:<\/b> Конфигурация через YAML, шаблоны и скрипты инициализации позволяют создать идеально настроенную и воспроизводимую среду для любого проекта.<\/li>\n<li><b>Экосистема:<\/b> Lima — это не просто VM, а платформа, на которой могут работать другие инструменты, такие как Podman, k3s, Docker, предоставляя им настраиваемое и оптимизированное Linux-окружение.<\/li>\n<\/ul>\n<p>Если вы разработчик, который ценит контроль, производительность и предпочитает работать в командной строке, Lima определенно заслуживает вашего внимания. Это мощный мост в мир Linux, встроенный прямо в ваш терминал.<\/p>\n",
            "date_published": "2025-09-05T00:41:39+03:00",
            "date_modified": "2025-09-05T00:03:37+03:00",
            "tags": [
                "Docker",
                "Podman",
                "Programming",
                "VM"
            ],
            "image": "https:\/\/gavrilov.info\/pictures\/Snimok-ekrana-2025-09-04-v-23.47.11.png",
            "_date_published_rfc2822": "Fri, 05 Sep 2025 00:41:39 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "277",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/gavrilov.info\/pictures\/Snimok-ekrana-2025-09-04-v-23.47.11.png",
                    "https:\/\/gavrilov.info\/pictures\/demo-1.gif"
                ]
            }
        }
    ],
    "_e2_version": 4171,
    "_e2_ua_string": "Aegea 11.4 (v4171e)"
}