Всё делаю на ВМ и в процессе установки добавляю еще один диск для больших объёмов данных и точку монтирования /portainer-data
cat /etc/fstab
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
# / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation
/dev/disk/by-id/dm-uuid-LVM-kmVAQlOe219swsa9PbKu4nlQyx9zOdBMfH11L3dkdBMhlaxXB953wbr9uLx617aG / ext4 defaults 0 0
# /portainer-data was on /dev/vg01/lv-01 during curtin installation
/dev/disk/by-id/dm-uuid-LVM-NV3K1uWII2O5hpfkyfQdvJpw7yu35WnY8vuAa1jIqwCrrhRY7Aw72v8vif3mmF0Y /portainer-data ext4 defaults 0 0
# /boot was on /dev/sda2 during curtin installation
/dev/disk/by-uuid/53737001-32a8-4698-8797-050d7c243610 /boot ext4 defaults 0 0
/swap.img none swap sw 0 0
sudo su && apt update && apt dist-upgrade -y && reboot now
sudo apt install -y linux-image-extra-virtual apt-transport-https ca-certificates curl software-properties-common && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" && sudo apt update
Убедитесь, что установка будет выполняться из репозитория Docker, а не из репозитория Ubuntu по умолчанию:
apt-cache policy docker-ce
Вы должны получить следующий вывод, хотя номер версии Docker может отличаться:
docker-ce:
Installed: (none)
Candidate: 5:20.10.2~3-0~ubuntu-focal
Version table:
5:20.10.2~3-0~ubuntu-focal 500
500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
Ставим docker community edition
sudo apt install docker-ce -y
Docker должен быть установлен, демон-процесс запущен, а для процесса активирован запуск при загрузке. Проверьте, что он запущен:
sudo systemctl status docker
Если вы не хотите каждый раз вводить sudo при запуске команды docker, добавьте свое имя пользователя в группу docker:
sudo usermod -aG docker ${USER} && su - ${USER}
Проверьте, что ваш пользователь добавлен в группу docker, введя следующее:
id -nG
Затем я укажу где хранить образы докера: открываю файл на редактирование и добавляю следующее
sudo vi /etc/docker/daemon.json
{
"data-root": "/portainer-data/docker-images"
}
где /portainer-data/docker-images - точка монтирования и созданная папка docker-images
sudo systemctl daemon-reload && sudo systemctl restart docker
curl -L "https://github.com/docker/compose/releases/download/v2.14.0/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
Проверяем версию
docker-compose --version
docker volume create portainer_data && docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
Проверяем, что portainer запущен
docker ps -a
Идем в браузер по http://ip-address:9000 и создаем пользователя
Затем выберите метод подключения: для начала можно подключиться к локальному сервису Docker, для чего выбираем Local
Нажимаем Connect - вы в панели управления докерами )
Например, в разделе Containers можно посмотреть все доступные контейнеры:
А в разделе Stacks - все доступные приложения.
создаем сеть proxynet
docker network create proxynet
Запускаем контейнер, но не забываем сменить:
MYDOMAIN.ru на свой домен
поддомены doc,it, на свои
почтовый адрес it@mailserver.ru для уведомлений Let`s Encrypt
docker run -i -t -d --name=swag \
--cap-add=NET_ADMIN \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/Moscow \
-e URL=MYDOMAIN.ru \
-e SUBDOMAINS=doc,it, \
-e VALIDATION=http \
-e EMAIL=it@mailserver.ru \
-e ONLY_SUBDOMAINS=true \
-e STAGING=false \
-p 443:443 \
-p 80:80 \
-v /home/grif/swag_data/config:/config \
--restart unless-stopped \
--network="proxynet" \
ghcr.io/linuxserver/swag
Для принудительного досрочного перевыпуска сертификатов заходим в контейнер SWAG и запускаем скрипт перевыпуска:
docker exec -it ID-контейнера /bin/bash
/app/le-renew.sh