Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    [ТУТОРИАЛ] Proxmox с Docker (и Portainer)

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    [ТУТОРИАЛ] Proxmox с Docker (и Portainer), Proxmox Виртуальная Среда
     
    michabbs
    Guest
    #1
    0
    11.10.2020 13:29:00
    Если хочешь использовать Docker с Proxmox, у тебя есть 3 варианта: запускать Docker в VM, запускать Docker в LXC или запускать Docker напрямую на узле PVE. Вот небольшое руководство для 3-го варианта.

    Обрати внимание: всё нужно выполнять от имени root.

    Включи файрвол в графическом интерфейсе PVE (хотя бы на уровне центра обработки данных). Даже если ты не используешь файрвол в Proxmox, включи его (просто установи политику по умолчанию на ACCEPT), потому что Docker использует netfilter.

    Подготовь iptables для Docker:

    ```
    iptables -N DOCKER-USER;
    iptables -I DOCKER-USER -j ACCEPT
    ```

    Тебе нужно сделать эту настройку постоянной. Например, отредактируй /etc/network/interfaces и добавь её в качестве пре-up скрипта для интерфейса "lo":

    ```
    auto lo
    iface lo inet loopback
       pre-up iptables -N DOCKER-USER;
       iptables -I DOCKER-USER -j ACCEPT
    ```

    Обрати внимание: возможно, существуют лучшие способы добиться этого, но вышеописанное "работает для меня"...

    Подготовь файловую систему примерно так:

    ```
    zfs create -o mountpoint=/var/lib/docker rpool/docker-root
    zfs create -o mountpoint=/var/lib/docker/volumes rpool/docker-volumes
    chmod 700 /var/lib/docker/volumes
    ```

    Если ты используешь zfs-auto-snapshot, тебе стоит рассмотреть следующее:

    ```
    zfs set com.sun:auto-snapshot=false rpool/docker-root
    zfs set com.sun:auto-snapshot=true rpool/docker-volumes
    ```

    Создай /etc/docker/daemon.json со следующим содержимым:

    ```json
    {
     "storage-driver": "zfs"
    }
    ```

    Добавь /etc/apt/sources.list.d/docker.list со следующим содержимым:

    ```
    deb [arch=amd64] https://download.docker.com/linux/debian buster stable
    # deb-src [arch=amd64] https://download.docker.com/linux/debian buster stable
    ```

    Установи Docker:

    ```
    apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
    apt update
    apt install docker-ce docker-ce-cli containerd.io
    ```

    Тебе может понадобиться это:

    ```
    usermod -aG docker your-user
    ```

    Воilà! Твой Docker должен быть готов!

    Протестируй:

    ```
    docker run hello-world
    ```

    Опция: Установи Portainer

    ```
    zfs create rpool/docker-volumes/portainer_data
    docker volume create portainer_data
    docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
    ```

    Можно опустить первую строку, если не хочешь иметь отдельный набор данных для Docker-тома (плохая идея).

    Перейди по адресу http://yournode:9000 и сконфигурируй.
     
     
     
    progl
    Guest
    #2
    0
    27.10.2020 17:17:00
    Насколько безопасно запускать Portainer на Proxmox? В lxc или vm можно сделать бэкап.
     
     
     
    michabbs
    Guest
    #3
    0
    27.10.2020 18:08:00
    Ну что, всегда нужно делать резервную копию, неважно, где именно работает Docker... ;-) Когда ты запускаешь Docker напрямую на узле pve, ты получаешь потенциально более высокую производительность и прямой доступ к zfs (хорошо). Возможно, ты заметишь проблемы со связью по сети между контейнерами Docker и lxc на том же узле. (плохо) У меня не было времени это расследовать и подстраивать... :-(
     
     
     
    progl
    Guest
    #4
    0
    27.10.2020 18:18:00
    И вот скажи, насколько выигрываешь в производительности, если сравнивать хост, LXC, VM? А сетевые проблемы на последней версии вообще актуальны?
     
     
     
    michabbs
    Guest
    #5
    0
    27.10.2020 18:28:00
    Без понятия, я никаких тестов не проводил. На самом деле для меня интеграция с ZFS была целью. Предполагаю, что разницы между LXC и bare metal быть не должно. В конце концов, обе системы используют одно ядро на одном ПК. Да. Я думаю, что политики netfilter слишком строгие, но, как я уже писал — у меня не было времени для более глубоких тестов… Подозреваю, что добавление macvlan-сети могло бы помочь.
     
     
     
    michabbs
    Guest
    #6
    0
    29.10.2020 13:42:00
    Я провёл несколько базовых тестов: соединения из lxc'ов или из qemu-vm'ов к docker (через перенаправленный порт на IP хоста) не работают. Похоже, пакеты теряются, когда они достигают правила DNAT (сгенерированного автоматически docker) — они проходят через prerouting и никогда не появляются в forward chain. Решение: создать macvlan сеть в Docker и назначить "реальный" IP контейнеру. (Это, конечно, может иметь некоторые недостатки...) Возможно, лучшее решение: Кажется, настройка rp_filter в ядре как-то связана. Когда я делаю вот это: echo "0" > /proc/sys/net/ipv4/conf/all/rp_filter — пакеты идут дальше через forward chain и, похоже, достигают назначения, но все равно есть проблемы с ответом. Требуется больше исследований… :-(
     
     
     
    Sanman99
    Guest
    #7
    0
    11.01.2024 16:31:00
    (Слишком старый пост, чтобы его поднимать?) Нужно ли мне переразбить что-то или добавить пул как-то сначала?

    Код: zfs create -o mountpoint=/var/lib/docker rpool/docker-root
    не удалось создать 'rpool/docker-root': нет такого пула 'rpool'

    Я создал тему https://forum.proxmox.com/threads/trying-to-get-started-wont-connect.139171/, до сих пор не могу установить Docker, просто надеюсь начать в ближайшее время.
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры