Убедимся, что у нас установлена актуальная версия Rocky Linux
Обновим систему и пакеты:
dnf update all
После обновления перезагрузим сервер
reboot или shudown -r now
Добавим пользователя npm в систему (это обязательно) - имя пользователя может быть другим
useradd npm
Установим пароль:
passwd npm
Добавим npm пользователя в группу wheel, которая предоставляет права sudo на Rocky Linux
usermod -aG wheel npm
Подключимся по SSH к серверу под пользователем npm
Установим необходимые зависимости
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2
Добавим репозиторий Docker в систему
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Установим Docker (статья Зачем нужен Docker)
sudo dnf install -y docker-ce docker-ce-cli containerd.io
Запустим службу Docker и добавим ее в автозапуск:
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl enable docker
Убедимся, что Docker успешно установлен, запустив команду проверки:
docker version
Должен появиться примерно такой результат:
Client: Docker Engine - Community
Version: 24.0.4
API version: 1.43
Go version: go1.20.5
Git commit: 3713ee1
Built: Fri Jul 7 14:52:35 2023
OS/Arch: linux/amd64
Context: default
Version: 24.0.4
API version: 1.43
Go version: go1.20.5
Git commit: 3713ee1
Built: Fri Jul 7 14:52:35 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.4
API version: 1.43 (minimum version 1.12)
Go version: go1.20.5
Git commit: 4ffc614
Built: Fri Jul 7 14:50:59 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.21
GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
runc:
Version: 1.1.7
GitCommit: v1.1.7-0-g860f061
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Engine:
Version: 24.0.4
API version: 1.43 (minimum version 1.12)
Go version: go1.20.5
Git commit: 4ffc614
Built: Fri Jul 7 14:50:59 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.21
GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
runc:
Version: 1.1.7
GitCommit: v1.1.7-0-g860f061
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Установим Docker Compose
Ознакомьтесь с детальным описанием - Зачем нужен Docker Compose
sudo curl -SL https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
Установим права на выполнение файла Docker Compose
sudo chmod +x /usr/local/bin/docker-compose
Проверим успешность установки Docker Compose
docker compose version
Должен появиться примерно такой результат
Docker Compose version v2.20.0
Создаём директорию под NPM
sudo mkdir -p /app/NPM
Сделаем нашего пользователя (не root !) владельцем этой директории
sudo chown -R $USER:$USER /app/NPM
Перейдем в директорию, которую мы создавали выше
cd /app/NPM
Создадим файл docker-compose.yml
sudo vi docker-compose.yml
С таким содержимым:
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager-app
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
# Uncomment this if IPv6 is not enabled on your host
#DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
db:
image: 'mariadb:latest'
container_name: nginx-proxy-manager-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./data/mysql:/var/lib/mysql
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager-app
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
# Uncomment this if IPv6 is not enabled on your host
#DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
db:
image: 'mariadb:latest'
container_name: nginx-proxy-manager-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./data/mysql:/var/lib/mysql
Сохраним файл:. Стартуем контейнер NPM
sudo docker compose up -d
После скачивания и старта контейнеров NPM будет соединен с MySQL и уже там будет хранить данные.
Через браузер подключаемся к нашему NPM по IP-адресу сервера и 81 порту, например: http://192.169.57.57:81
Авторизуемся с реквизитами по умолчанию
admin@examle.com
changeme
changeme
При первом входе необходимо сменить почту и пароль
Произведем необходимые настройки.
Важно отметить, что после перезагрузки оба контейнера у нас запустятся автоматически и все произведенные настройки через web-интерфейс сохранятся.
Хотите безошибочно настроить Nginx Proxy Manager и MySQL в Docker на Rocky Linux 9.2? Позвольте команде Kamensky-lab помочь вам в каждом шаге этого процесса. Обратитесь к нам для консультации и успешной установки!