【云原生之Docker实战】使用Docker部署反向代理 Nginx Proxy Manager
- 一、 Nginx Proxy Manager介绍
-
- 1. Nginx Proxy Manager介绍
- 2.Nginx Proxy Manager特点
- 二、检查docker状态
- 三、安装docker-compose
-
- 1.安装docker-compose
- 2.给docker-compose添加执行权限的文件
- 3.查看docker-compose版本
- 四、编辑docker-compose.yaml文件
-
- 1.编辑yaml安装文件
- 2.创建挂载目录
- 3.安装Nginx Proxy Manager
- 4.安装后检查容器状态
- 五、 访问Nginx Proxy Manager
-
- 1.测试Nginx Proxy Manager
- 2.登录web界面
- 3.打开 Nginx Proxy Manager首页
一、 Nginx Proxy Manager介绍
1. Nginx Proxy Manager介绍
Nginx Proxy Manager是用于管理 Nginx代理主机的 Docker容器,界面简单,强大。它允许您轻松转发到您在家或其他地方运行的网站,包括免费的 SSL,而无需对 Nginx或 Letsencrypt了解太多。
2.Nginx Proxy Manager特点
1.非常适合小白新手使用反向代理功能。 2.有一个漂亮的UI界面,使用简单。 3.反向代理可以在一分钟内完成 SSL申请配置证书。 4.Docker-compose 一键部署,方便快捷。 5.端口转发、404主页、重定向等功能易于配置。 6.支持多用户管理。 7.易于管理域名白名单,更好地保护局域网主机和服务器。 8.支持Nginx深度修改适合资深工程师。
二、检查docker状态
[root@master npm]# docker version Client: Docker Engine - Community Version: 20.10.17 API version: 1.41 Go version: go1.17.11 Git commit: 100c701 Built: Mon Jun 6 23:05:12 2022 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.17 API version: 1.41 (minimum version 1.12) Go version: go1.17.11 Git commit: a89b842 Built: Mon Jun 6 23:03:33 2022 OS/Arch: linux/amd64 Experimental: false containerd: Version: v1.6.1 GitCommit: 10f428dac7cec44c864e1b830a4623af27a9fc70 runc: Version: 1.1.0
GitCommit: v1.1.0-0-g067aaf85
docker-init:
Version: 0.19.0
GitCommit: de40ad0
三、安装docker-compose
1.安装docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2.给docker-compose文件添加执行权限
chmod +x /usr/local/bin/docker-compose
3.查看docker-compose版本
[root@master npm]# docker-compose -version
docker-compose version 1.25.0, build 0a186604
四、编辑docker-compose.yaml文件
1.编辑yaml安装文件
[root@master npm]# cat docker-compose.yaml
version: "3"
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: always
ports:
# These ports are in format <host-port>:<container-port>
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
environment:
DB_MYSQL_HOST: "192.168.3.146"
DB_MYSQL_PORT: 3671
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
depends_on:
- db
db:
image: 'jc21/mariadb-aria:latest'
restart: always
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
ports:
- 3671:3306
volumes:
- ./data/mysql:/var/lib/mysql
2.创建挂载目录
[root@master npm]# mkdir -p ./data
[root@master npm]# mkdir -p ./letsencrypt
[root@master npm]# mkdir -p ./data/mysql
3.安装Nginx Proxy Manager
[root@master npm]# docker-compose up -d
Creating network "npm_default" with the default driver
Pulling db (jc21/mariadb-aria:latest)...
latest: Pulling from jc21/mariadb-aria
df20fa9351a1: Pull complete
c4e214cb7f07: Pull complete
568f83ab8cda: Pull complete
edf866f7abc9: Pull complete
a72600294fbb: Pull complete
3e879d1f1b34: Pull complete
41e2c76755f1: Pull complete
Digest: sha256:9dafab05f863cd186101fd8ac8b18684e8dfd7c3cce1376e552b77d0a8b40839
Status: Downloaded newer image for jc21/mariadb-aria:latest
Pulling app (jc21/nginx-proxy-manager:latest)...
latest: Pulling from jc21/nginx-proxy-manager
72a69066d2fe: Pull complete
825188956e90: Pull complete
6916d26329a2: Pull complete
c38d769b409b: Pull complete
1f80df406181: Pull complete
0f08d5fe2388: Pull complete
8c6f29f06fbf: Pull complete
842e56434587: Pull complete
59b65e9e8c19: Pull complete
2fa90c56d9cd: Pull complete
c34ae494dda2: Pull complete
596a4287c95c: Pull complete
93fed03147ec: Pull complete
06e5cea7a2e8: Pull complete
ed7b32089832: Pull complete
3645a0fd7712: Pull complete
3fc06797edcf: Pull complete
21b8ccd554d9: Pull complete
f1e42dc354f3: Pull complete
d2d267cd8da3: Pull complete
cdb75b136b21: Pull complete
9274cd10b66f: Pull complete
ea2bd62b2698: Pull complete
b205e981c16a: Pull complete
0dafef540f92: Pull complete
8cc9fc813fd3: Pull complete
Digest: sha256:e6d13908c87d150efc1566a9ed1570661f1c3e09362b26bfe7d7608a831e4591
Status: Downloaded newer image for jc21/nginx-proxy-manager:latest
Creating npm_db_1 ... done
Creating npm_app_1 ... done
4.检查安装后容器状态
[root@master npm]# docker ps |grep npm
4102171927b1 jc21/nginx-proxy-manager:latest "/init" About a minute ago Up About a minute 0.0.0.0:80-81->80-81/tcp, :::80-81->80-81/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp npm_app_1
1e1e3b72dddb jc21/mariadb-aria:latest "/scripts/run.sh" About a minute ago Up About a minute 0.0.0.0:3671->3306/tcp, :::3671->3306/tcp npm_db_1
[root@master npm]#
五、 访问Nginx Proxy Manager
1.测试Nginx Proxy Manager
2.登录web界面
http://192.168.3.146:81/login
默认的账号:admin@example.com 密码:changeme