Установка Portainer в LXC-контейнере на Proxmox для удобного управления Docker

Portainer — это мощная и удобная панель управления для работы с Docker-контейнерами прямо из браузера. Она позволяет управлять как локальными контейнерами, так и удаленными серверами. В этой статье разберемся процесс установки Portainer в контейнер LXC на систему виртуализации Proxmox.

1. Подготовка контейнера LXC

Мы начинаем с уже созданного LXC-контейнера на Proxmox (подробности создания контейнера здесь опустим). Подключаемся к нему через SSH и выполняем базовую настройку.

2. Обновление системы и установка Docker.

Сначала обновим систему, чтобы все пакеты были актуальными. Далее настроим репозиторий Docker и установим его:

# Обновляем систему
sudo apt update && sudo apt upgrade -y

# Добавляем репозиторий Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Устанавливаем Docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y

После установки убедитесь, что Docker установлен правильно, проверьте его версию:

docker -v
# Вывод: Docker version 27.3.1, build ce12230

Также можно проверить, что служба Docker успешно запустилась:

sudo systemctl status docker

3. Настройка пользователя для работы с Docker

По умолчанию Docker требует прав администратора (root), что может быть неудобно. Чтобы избежать запуска команды от root, добавьте пользователя в группу Docker. Создадим нового пользователя, назовем его, например, dockerи добавим его в группу docker:

# Создаем пользователя
sudo useradd -m docker

# Добавляем пользователя в группу docker
sudo usermod -aG docker docker

Теперь можно войти в систему под пользователем dockerи проверить его доступ к Docker.

4. Установка Портейнера

Portainer сам является контейнером Docker, что ограничивает его установку и обновление. Для начала создания тома для хранения данных Portainer, чтобы информация сохранялась между перезапусками:

docker volume create portainer_data

Теперь загрузим последнюю версию Portainer Community Edition и запустим контейнер:

docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

5. Доступ к веб-интерфейсу Portainer

Теперь контейнер Portainer запущен, и можно подключиться.

  1. Укажите IP-адрес вашего контейнера LXC. Если вы не указали статический IP-адрес, его можно найти через DHCP-сервер или выполнение команды:
ip a

Например, контейнер IP-адреса может быть 10.10.10.101.

2. Откройте браузер на своем компьютере и проверьте адрес https://10.10.10.101:9443/.

6. Тайм-аут интерфейса Portainer

Если вы откроете Portainer впервые спустя некоторое время после его запуска, может появиться сообщение о тайм-ауте интерфейса. Это функция безопасности, предотвращающая случайный запуск Portainer в сети без настроек.

Чтобы перезапустить Portainer, выполните следующую команду:

docker container restart portainer

На этом все! Теперь у вас настроен Portainer в LXC-контейнере на Proxmox, и можно легко управлять своими Docker-контейнерами через веб-интерфейс.