Docker & Portainer & Linux-SWAG

Ставлю на чистую Ubuntu 20.04
Ubuntu 20.04 server

Всё делаю на ВМ и в процессе установки добавляю еще один диск для больших объёмов данных и точку монтирования /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
Docker-CE
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
Docker Compose
curl -L "https://github.com/docker/compose/releases/download/v2.11.1/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

Проверяем версию

docker-compose --version
Portainer
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 - все доступные приложения.

Nginx Linux-SWAG

создаем сеть 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

IT-Admins. 2020