{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "M9K blog: заметки с тегом podman",
    "_rss_description": "Заметки обо всём: devops, lifestyle, культура.",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/blog.m9k.space\/tags\/podman\/",
    "feed_url": "https:\/\/blog.m9k.space\/tags\/podman\/json\/",
    "icon": "https:\/\/blog.m9k.space\/pictures\/userpic\/userpic@2x.jpg?1769095194",
    "authors": [
        {
            "name": "M",
            "url": "https:\/\/blog.m9k.space\/",
            "avatar": "https:\/\/blog.m9k.space\/pictures\/userpic\/userpic@2x.jpg?1769095194"
        }
    ],
    "items": [
        {
            "id": "240",
            "url": "https:\/\/blog.m9k.space\/all\/rootless-podman-vnutri-proxmox-lxc-problema-uid-gid-mapping\/",
            "title": "Rootless Podman внутри Proxmox LXC: проблема UID\/GID mapping",
            "content_html": "<p>При запуске File Browser через rootless Podman образ скачивался, но распаковка завершалась ошибкой:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">potentially insufficient UIDs or GIDs available in user namespace (requested 65534:65534)<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">lchown \/home: invalid argument<\/code><\/pre><p>Причина: пользователю podman выделено только 50 000 subordinate UID\/GID. Образ содержит файлы с UID\/GID 65534, которые не помещаются в доступный диапазон.<\/p>\n<p>Механизм<\/p>\n<p>Используются два уровня отображения идентификаторов:<br \/>\nPodman: UID\/GID образа → UID\/GID внутри Debian LXC.<br \/>\nLXC: UID\/GID Debian → UID\/GID хоста Proxmox.<\/p>\n<p>Настройки Podman определяются файлами \/etc\/subuid и \/etc\/subgid. Внешний mapping LXC задаётся через lxc.idmap.<\/p>\n<p>Исходная конфигурация Proxmox:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">root:100000:65536<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">deploy:165536:65536<\/code><\/pre><p>Непривилегированному LXC доступны 65 536 идентификаторов. Расширить диапазон непрерывно нельзя: следующие идентификаторы уже выделены пользователю deploy.<\/p>\n<p>Решение:<\/p>\n<p>Выделить свободный диапазон на Proxmox и добавить его в \/etc\/subuid и \/etc\/subgid хоста:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">root:231072:15536<\/code><\/pre><p>В конфигурации LXC сохранить исходное отображение и добавить новое:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">lxc.idmap = u 0 100000 65536<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">lxc.idmap = g 0 100000 65536<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">lxc.idmap = u 65536 231072 15536<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">lxc.idmap = g 65536 231072 15536<\/code><\/pre><p>Внутри LXC контейнера дополнить существующий диапазон пользователя podman:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">podman:10000:50000<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">podman:65536:15536<\/code><\/pre><p>Настроить аналогично UID и GID, предварительно проверив отсутствие пересечений с другими диапазонами. После остановки приложений перезапустить LXC и выполнить:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">podman system migrate<\/code><\/pre><p>Изменение mapping не переносит владельцев существующих файлов автоматически.<\/p>\n",
            "summary": "При запуске File Browser через rootless Podman образ скачивался, но распаковка завершалась ошибкой",
            "date_published": "2026-09-19T14:29:49+07:00",
            "date_modified": "2026-09-21T09:58:16+07:00",
            "tags": [
                "mapping",
                "podman",
                "системное администрирование"
            ],
            "_date_published_rfc2822": "Sat, 19 Sep 2026 14:29:49 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "240",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "239",
            "url": "https:\/\/blog.m9k.space\/all\/proxmox-7-vklyuchenie-docker-i-podman-v-lxc\/",
            "title": "Proxmox 7: включение Docker и Podman в LXC",
            "content_html": "<p>Для запуска Docker или Podman внутри LXC-контейнера необходимо активировать дополнительные возможности: nesting, keyctl и fuse.<\/p>\n<p>Скрипт запрашивает ID контейнера, проверяет наличие конфигурации, создаёт резервную копию с меткой времени и включает необходимые параметры. Остальные настройки features сохраняются.<\/p>\n<p>Запускать от root на хосте Proxmox.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/bash\n\nread -rp &quot;Введите ID контейнера (CTID): &quot; CTID\n\nif [[ ! &quot;$CTID&quot; =~ ^[0-9]+$ || ! -f &quot;\/etc\/pve\/lxc\/${CTID}.conf&quot; ]]; then\n    echo &quot;Ошибка: некорректный CTID или конфигурация не найдена&quot;\n    exit 1\nfi\n\nCONF=&quot;\/etc\/pve\/lxc\/${CTID}.conf&quot;\nBACKUP_DIR=&quot;\/root\/lxc-config-backups&quot;\n\nmkdir -p &quot;$BACKUP_DIR&quot; &amp;&amp;\ncp &quot;$CONF&quot; &quot;$BACKUP_DIR\/${CTID}.conf.$(date +%Y%m%d_%H%M%S).bak&quot; &amp;&amp;\npct set &quot;$CTID&quot; --features &quot;$(awk -F, &#039;\/^features:\/{sub(\/^features:[[:space:]]*\/, &quot;&quot;); for(i=1;i&lt;=NF;i++) if($i !~ \/^(nesting|keyctl|fuse)=\/) printf &quot;%s,&quot;, $i} END{print &quot;nesting=1,keyctl=1,fuse=1&quot;}&#039; &quot;$CONF&quot;)&quot; &amp;&amp;\npct config &quot;$CTID&quot; | grep &#039;^features:&#039;<\/code><\/pre><p>Пример выполнения:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">Введите ID контейнера (CTID): 177\nfeatures: fuse=1,keyctl=1,nesting=1<\/code><\/pre><p>Резервная копия конфигурации сохраняется в \/root\/lxc-config-backups\/.<\/p>\n<p>После изменения параметров необходимо полностью остановить и запустить контейнер:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">pct stop 177 &amp;&amp; pct start 177<\/code><\/pre><p>Update:<br \/>\nЕщё одна ошибка:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">Failed to open() \/dev\/net\/tun: No such file or directory\nFailed to set up tap device in namespace<\/code><\/pre><p>Чиним:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/bash\nset -euo pipefail\n\nCTID=178\nCONF=&quot;\/etc\/pve\/lxc\/${CTID}.conf&quot;\nBACKUP=&quot;${CONF}.$(date +%Y%m%d%H%M%S).bkp&quot;\n\nmodprobe tun\ntest -c \/dev\/net\/tun\n\ncp -a &quot;$CONF&quot; &quot;$BACKUP&quot;\n\nRULES=(\n    &quot;lxc.cgroup2.devices.allow: c 10:200 rwm&quot;\n    &quot;lxc.mount.entry: \/dev\/net\/tun dev\/net\/tun none bind,create=file&quot;\n)\n\nfor rule in &quot;${RULES[@]}&quot;; do\n    grep -Fqx -- &quot;$rule&quot; &quot;$CONF&quot; || printf &#039;%s\\n&#039; &quot;$rule&quot; &gt;&gt; &quot;$CONF&quot;\ndone\n\necho &quot;Backup: $BACKUP&quot;\necho &quot;Configuration:&quot;\ngrep -E &#039;^lxc\\.(cgroup2\\.devices\\.allow|mount\\.entry):&#039; &quot;$CONF&quot;<\/code><\/pre>",
            "summary": "Для запуска Docker или Podman внутри LXC-контейнера необходимо активировать дополнительные возможности",
            "date_published": "2026-09-19T10:20:57+07:00",
            "date_modified": "2026-09-19T21:20:16+07:00",
            "tags": [
                "docker",
                "linux",
                "lxc",
                "podman",
                "системное администрирование"
            ],
            "_date_published_rfc2822": "Sat, 19 Sep 2026 10:20:57 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "239",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        }
    ],
    "_e2_version": 4199,
    "_e2_ua_string": "Aegea 11.5 (v4199)"
}