云原生之docker实战使用docker部署反向代理nginxproxymanager(代码片段)

江湖有缘 江湖有缘     2022-12-06     572

关键词:

【云原生之Docker实战】使用Docker部署反向代理 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

3.打开 Nginx Proxy Manager首页

云原生之docker实战使用docker部署komga个人漫画服务器

【云原生之Docker实战】使用Docker部署Komga个人漫画服务器一、Komga介绍1.Komga简介2.Komga特点二、检查docker状态三、下载dezhao/komga_cn镜像四、安装Komga1.创建容器本地数据目录2.创建Komga容器3.查看Komga容器状态4.查看Komga日志五、配置... 查看详情

云原生之docker实战使用docker部署webssh工具

【云原生之Docker实战】使用docker部署webssh工具一、webssh介绍二、检查服务器系统版本三、检查本地docker环境1.检查docker服务状态2.检查docker版本四、安装docker-compose1.下载docker-compose二进制包2.给文件增加执行权限3.检查docker-compose... 查看详情

云原生之docker实战使用docker部署kodbox私有云

【云原生之Docker实战】使用docker部署kodbox私有云一、kodbox介绍1.kodbox简介2.kodbox功能与特点二、检查本地docker状态1.检查docker版本2.检查docker状态三、安装kodbox1.创建安装目录2.编辑docker-compose.yaml脚本3.创建相关容器4.查看容器状态... 查看详情

云原生之docker实战使用docker部署pingvinshare文件共享平台

【云原生之Docker实战】使用docker部署PingvinShare文件共享平台一、PingvinShare介绍1.PingvinShare简介2.PingvinShare特点二、检查本地docker环境1.检查docker版本2.检查docker状态3.检查dockercompose版本三、下载PingvinShare镜像四、docker-cli部署PingvinSh... 查看详情

云原生之docker实战使用docker部署ghost个人博客系统

【云原生之Docker实战】使用docker部署Ghost个人博客系统一、Ghost介绍二、检查docker环境1.检查docker版本2.检查docker状态3.检查dockercompose版本四、下载ghost镜像1.dockerhub下载镜像2.个人镜像仓库下载镜像五、使用docker-cli部署Ghost六、使... 查看详情

云原生之docker实战使用docker部署speedtest测速平台

【云原生之Docker实战】使用Docker部署speedtest测速平台一、speedtest介绍1.speedtest简介2.adolfintel/speedtest镜像简介3.speedtest特点二、检查本地docker1.检查docker版本2.检查docker状态四、下载adolfintel/speedtest镜像五、安装speedtest测速平台1.运... 查看详情

云原生之docker实战使用docker部署cloudreve公有云文件系统

【云原生之Docker实战】使用Docker部署Cloudreve公有云文件系统一、Cloudreve介绍1.Cloudreve简介2.Cloudreve特点二、检查本地docker环境1.检查docker服务状态2.检查docker配置信息3.开启IPv4forwarding4.检查Docker版本三、检查宿主机系统版本四、安... 查看详情

云原生之docker实战使用docker部署jpress开源网站

【云原生之Docker实战】使用Docker部署jpress开源网站一、jpress介绍1.jpress简介2.jpress功能二、检查本地docker环境1.检查docker版本2.检查系统版本3.检查docker状态三、安装docker-compose1.下载docker-compose二进制包2.给文件增加执行权限3.检查d... 查看详情

云原生之docker实战使用docker部署nodebb社区平台

【云原生之Docker实战】使用Docker部署NodeBB社区平台一、NodeBB二、检查本地docker环境1.检查docker版本2.检查docker状态3.检查dockercompose版本三、下载NodeBB镜像四、编辑docker-compose文件五、部署NodeBB1.创建数据目录2.创建nodebb容器3.查看nod... 查看详情

云原生之docker实战使用docker部署个人网盘nextcloud

【云原生之Docker实战】使用Docker部署个人网盘nextcloud一、Nextcloud介绍1.Nextcloud简介2.Nextcloud特点二、检查docker状态1.检查docker服务状态2.检查docker版本三、安装docker-compose1.安装docker-compose2..给docker-compose文件添加执行权限3.查看docker... 查看详情

云原生之docker实战使用docker部署halo博客系统

【云原生之Docker实战】使用docker部署Halo博客系统一、Halo介绍1.Halo简介2.Halo特点3.本次实践说明二、检查本地docker环境1.检查docker版本2.检查docker状态3.检查dockercompose版本三、下载Halo镜像四、下载application.yaml文件1.创建数据目录2.... 查看详情

云原生之docker实战使用docker部署部署doclever开源接口管理平台

【云原生之Docker实战】使用Docker部署部署DoClever开源接口管理平台一、DoClever介绍1.DoClever简介2.DOClever开发语言3.DOClever特点二、检查本地docker环境1.检查docker服务状态2.检查docker配置信息3.开启IPv4forwarding4.检查Docker版本三、检查宿... 查看详情

云原生之docker实战使用docker部署excalidraw白板绘图工具

【云原生之Docker实战】使用Docker部署excalidraw白板绘图工具一、excalidraw介绍1.excalidraw简介2..excalidraw特点二、检查本地docker状态1.检查docker配置信息2.检查docker状态三、下载excalidraw镜像四、创建excalidraw容器1.创建excalidraw容器2.查看... 查看详情

云原生之docker实战使用docker部署个人导航页webstack

【云原生之Docker实战】使用docker部署个人导航页webstack一、webstack介绍二、安装docker-compose1.检查docker版本2.安装docker-compose3.给docker-compose文件添加执行权限4.查看docker-compose版本三、下载WebStack-Laravel的安装文件四、修改docker-compose.... 查看详情

云原生之docker实战使用docker部署flarum开源论坛

【云原生之Docker实战】使用Docker部署Flarum开源论坛一、Flarum介绍1.Flarum简介2.Flarum特点二、检查宿主机系统版本三、检查本地docker环境1.检查docker服务状态2.检查docker配置信息3.开启IPv4forwarding四、安装docker-compose1.下载docker-compose二... 查看详情

云原生之docker实战使用docker部署picuploader图床工具

【云原生之Docker实战】使用docker部署PicUploader图床工具一、PicUploader介绍1.PicUploader介绍2.PicUploader特点二、检查本地系统环境1.检查系统版本2.检查系统内核版本三、检查docker环境1.检查docker版本2.检查docker状态四、安装docker-compose... 查看详情

云原生之docker实战使用docker部署jenkins持续集成工具

【云原生之Docker实战】使用Docker部署jenkins持续集成工具一、jenkins介绍1.jenkins简介2.jenkins功能3.jenkins基本工作图二、检查本地系统版本三、检查本地docker状态1.检查docker版本2.检查docker状态四、安装docker-compose1.下载docker-compose二进... 查看详情

云原生之docker实战使用docker部署yesplaymusic个人音乐播放器

【云原生之Docker实战】使用docker部署yesplaymusic个人音乐播放器一、yesplaymusic介绍1.yesplaymusic简介2.yesplaymusic的特性二、检查本地docker环境1.检查本地docker版本2.检查docker状态三、下载yesplaymusic镜像四、部署yesplaymusic应用1.创建yesplaym... 查看详情