1. 环境配置
mkdir -p /docker/npm/data /docker/npm/letsencrypt /docker/mariadb-npm/data /docker/mariadb-npm/conf /docker/mariadb-npm/log && \
tee /docker/npm/.env <<-'EOF'
MYSQL_ROOT_PASSWORD=<MYSQL_ROOT_PASSWORD>
MYSQL_DATABASE=<MYSQL_DATABASE>
MYSQL_USER=<MYSQL_USER>
MYSQL_PASSWORD=<MYSQL_PASSWORD>
EOF
2. 编辑 docker-compose.yml
tee /docker/npm/docker-compose.yml <<-'EOF'
services:
npm:
image: jc21/nginx-proxy-manager:latest
container_name: npm
restart: unless-stopped
ports:
- "80:80" # Public HTTP Port
- "443:443" # Public HTTPS Port
- "81:81" # Admin Web Port
environment:
DB_MYSQL_HOST: mariadb-npm
DB_MYSQL_PORT: 3306
DB_MYSQL_NAME: ${MYSQL_DATABASE}
DB_MYSQL_USER: ${MYSQL_USER}
DB_MYSQL_PASSWORD: ${MYSQL_PASSWORD}
#DISABLE_IPV6: true # Uncomment this if IPv6 is not enabled on your host
volumes:
- /docker/npm/data:/data
- /docker/npm/letsencrypt:/etc/letsencrypt
depends_on:
- mariadb-npm
networks:
- internal
mariadb-npm:
image: jc21/mariadb-aria:latest
container_name: mariadb-npm
restart: unless-stopped
ports:
- "82:3306"
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
volumes:
- /docker/mariadb-npm/data:/var/lib/mysql
- /docker/mariadb-npm/log:/var/log/mysql:rw
- /docker/mariadb-npm/conf/:/etc/mysql/conf.d
networks:
- internal
networks:
internal:
driver: bridge
name: internal
EOF
3. 运行 docker compose
cd /docker/npm/ && \
docker compose up -d
4. 其他
# backup
cd /docker/npm/ && \
docker compose stop && \
docker compose rm -f && \
docker rmi jc21/nginx-proxy-manager:latest && \
docker rmi jc21/mariadb-aria && \
rm -rf /docker/npm /docker/mariadb-npm
# 查看日志
docker compose logs
NPM
Email address
Password
changeme
&NPM
New Proxy Host
Details
Domain Names
<域名>
Scheme
http
Forward Hostname / IP
npm
Forward Port
81
Cache Assets
False
Block Common Exploits
True
Websockets Support
True
Access List
PUblicly Accessible
SSL
SSL Certificate
Request a new SSL Certificate
Force SSL
True
HTTP/2 Support
True
HSTS Enabled
False
HSTS Subdomains
False
Use a DNS Challenge
False
Email Address for Let's Encrypt
<管理员邮箱>
I Agree to the Let's Encrypt Terms of Service
True
&Navicat
连接名
NPM
主机
<域名 or IP>
端口
82
用户名
<MYSQL_USER>
密码
<MYSQL_PASSWORD>