Docker Compose 部署 Nginx +Acme.sh + Lsky Pro + MariaDB + Picgo v1.2

Docker Compose 部署 Nginx +Acme.sh + Lsky Pro + MariaDB + Picgo v1.2

Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

Acme.sh 是一个自动申请证书工具

Lsky Pro 兰空图床可以帮您保管大量无处安放的图片,数据可以自由选择储存驱动,支持主流第三方储存。作为一个助手,它不仅可以将您把图片以指定规则存放在指定位置,还有更多强大的功能来帮助您处理这些图片。

MariaDB 数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

Picgo 一个用于快速上传图片并获取图片 URL 链接的工具

更新

v1.0 Docker 部署(2022.09.02)

v1.1 Docker Compose 部署 Lsky Pro 图床 + Picgo 上传工具(2022.11.14)

v1.2 Docker Compose 部署 增加 nginx acme.sh (2022.11.15)

一.安装部署

1.1 安装 Docker

按提示自行选择国内或国外安装

bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)

1.2 Docker 部署 Lsky Pro

创建文件存储路径

mkdir -p /data/Lsky/var/www/html

拉取镜像

docker pull wbsu2003/lskypro:latest

启动容器

docker run -d --name=lskypro -p 8080:80 -v /data/Lsky/var/www/html:/var/www/html --restart=always wbsu2003/lskypro:latest

命令解释:

  -d \ #后台运行
  -p 8080:80 \ #映射容器内80端口至宿主机8080端口
  -v /data/Lsky:/var/www/html #将容器内 /var/www/html 路径映射至宿主机 /data/Lsky 路径
  --restart=always #配置容器始终启动
  --name lskypro  #配置容器名称
  wbsu2003/lskypro:latestt   #运行docker官方镜像站 wbsu2003/lskypro 镜像,latest:最新镜像
  访问服务: http://服务器ip:8080 即可登录

1.3 Docker Compose 部署

创建文件存储路径并进入

mkdir -p /Data/Docker_Data/Lsky_Data
cd /Data/Docker_Data/Lsky_Data

创建nginx配置文件

mkeir -p nginx/conf/
cd nginx/conf/
nano xxx.conf
server {
    listen  80;
    server_name  xxx.xxx.xxx xxxsql.xxx.xxx;     #xxx 为域名,一个兰空图床的域名,一个sql管理工具的域名
    rewrite ^(.*) https://$host$1 permanent;
}
server {
    listen       443 ssl;
    listen  [::]:443 ssl;
    server_name  xxx.xxx.xxx.com;                   #修改xxx 为 兰空图床的域名

    ssl_certificate     /lsky_key/xxx.xxx.xxx.cer;        #修改xxx 为 兰空图床的域名
    ssl_certificate_key /lsky_key/xxx.xxx.xxx.key;      #修改xxx 为 兰空图床的域名


    location / {
                    proxy_set_header    X-FORWARDED-FOR $remote_addr;
                    proxy_set_header    X-FORWARDED-PROTO $scheme;
                    proxy_set_header    Host   $http_host;
                    proxy_pass          http://lsky:80;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

server {
    listen       443 ssl;
    listen  [::]:443 ssl;
    server_name  xxxsql.xxx.xxx;        #数据库管理工具的域名

    ssl_certificate     /sql_key/xxxsql.xxx.xxx.cer;     #修改xxx 为 数据库管理工具的域名
    ssl_certificate_key /sql_key/xxxsql.xxx.xxx.key;

    location / {
                    proxy_set_header    X-FORWARDED-FOR $remote_addr;
                    proxy_set_header    X-FORWARDED-PROTO $scheme;
                    proxy_set_header    Host   $http_host;
                    proxy_pass          http://phpmyadmin:80;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

创建 docker-compose.yml 配置文件

cd /Data/Docker_Data/Lsky_Data
nano docker-compose.yml
version: "3.9"
services:
  # Nginx 反向代理
  nginx:
    image: nginx:latest
    container_name: nginx
    depends_on:
      - acme.sh
    volumes:
      - ./nginx/html:/usr/share/nginx/html/
      - ./nginx/conf:/etc/nginx/conf.d/
      - ./acme/xxx.xxx.xxx:/lsky_key       #此处路径为acme 内 证书文件夹路径,为lsky 申请证书
      - ./acme/xxx.xxx.xxx:/sql_key       #此处路径为acme 内 证书文件夹路径, 为phpmyadmin 数据库管理工具申请证书
    # 对外开放 80 (http) 和 443 (https) 端口
    ports:
      - 80:80
      - 443:443
    networks:
      - lsky_net            # 此处为网络设置,无需指定网络可删除
    restart: always
  acme.sh:
    image: neilpang/acme.sh
    container_name: acme.sh
    restart: always
    environment:
      - CF_Token=xxxxxxxxxxx    #我这里是 CloudFlare
      - CF_Account_ID=xxxxxxxxxxxx  #我这里是 CloudFlare
    command: daemon
    volumes:
      - ./acme:/acme.sh
    networks:
      - lsky_net            # 此处为网络设置,无需指定网络可删除
  # 图床应用
  lsky:
    image: wbsu2003/lskypro:latest
    container_name: tc_aoliyougei_lsky
    restart: always
    container_name: lsky
    ports:
      - 8080:80     #对外映射端口,由于lsky和mariadb 容器处于同一网络内,故mariadb无需指定窗口
    volumes:
      - ./lsky:/var/www/html       # ./ 为当前目录下
    networks:                
      - lsky_net            # 此处为网络设置,无需指定网络可删除

  mariadb:
    image: mariadb
    # 映射mariadb容器内存放数据库数据的文件夹
    # 其中包含了WordPress的核心数据信息
    container_name: mariadb
    volumes:
       - ./mariadb_data:/var/lib/mysql    # ./ 为当前目录下
    restart: always
    # 下面的环境变量会在数据库数据文件夹已存在时失效
    environment:
      # root用户的初始密码
      MYSQL_ROOT_PASSWORD: password
      # 使用的数据库
      MYSQL_DATABASE: lsky
      # 使用的用户
      MYSQL_USER: lsky
      # 使用的用户的密码
      MYSQL_PASSWORD: lsky
    networks:
      # 使用自己建立的Docker网络
      - lsky_net  
  # phpmyadmin 管理数据库
  phpmyadmin:
    container_name: phpmyadmin
    depends_on:
      - mariadb
    image: phpmyadmin
    restart: always
    environment:
      - PMA_HOST=mariadb
      - PMA_USER=root
      - PMA_PASSWORD=aoliyougei
    networks:
      # 使用自己建立的Docker网络 
      - lsky_net     # 此处为网络设置,无需指定网络可删除
networks:         # 此处为网络设置,无需指定网络可删除
  lsky_net:      # 此处为网络设置,无需指定网络可删除



启动容器

docker-compose up -d

查看容器状态 此时 nginx 无法启动,因为证书还没有申请

docker ps

为 Lsky Pro 及 phpmyadmin 申请证书

docker exec -it acme.sh acme.sh --issue --server letsencrypt --dns dns_cf -d xxx.xxx.xxx --nginx
docker exec -it acme.sh acme.sh --issue --server letsencrypt --dns dns_cf -d xxxsql.xxx.xxx --nginx

申请成功后重启 docker-compose

docker-compose restart

查看证书续签时间

docker exec -it acme.sh crontab -l

开启 acme.sh 自动更新

docker exec -it acme.sh acme.sh --upgrade --auto-upgrade

由于证书更新后需要重启nginx重启才能识别,所以添加一条定时重启 nginx 容器 的命令

crontab -e

添加为 每天 0点30分 重启nginx

30 0 * * * docker restart nginx

如在云服务器中配置则直接解析域名到IP地址即可访问

如在本地自建DNS服务器则解析IP地址到本地DNS服务器即可访问

如在本机或局域网测试环境直接修改电脑 hosts 文件 解析IP即可访问

二、配置运行

2.1 Lsky Pro 配置

进入 Lsky Pro

图片[1]-Docker Compose 部署 Nginx +Acme.sh + Lsky Pro + MariaDB + Picgo v1.2-奥力呦给
配置数据库参数,下一步
图片[2]-Docker Compose 部署 Nginx +Acme.sh + Lsky Pro + MariaDB + Picgo v1.2-奥力呦给

设置管理员账号,下一步

图片[3]-Docker Compose 部署 Nginx +Acme.sh + Lsky Pro + MariaDB + Picgo v1.2-奥力呦给
配置完成后点击网站首页,安装完毕。

2.2 Picgo 配置

下载 Picgo 客户端

进入 GitHub 中 点击 Releases 进入下载对应版本

图片[4]-Docker Compose 部署 Nginx +Acme.sh + Lsky Pro + MariaDB + Picgo v1.2-奥力呦给

下拉选择对应电脑系统 进行下载即可

图片[5]-Docker Compose 部署 Nginx +Acme.sh + Lsky Pro + MariaDB + Picgo v1.2-奥力呦给

国内用户无法访问 Github 可关注公众号获取

打开 PicGo 客户端

图片[6]-Docker Compose 部署 Nginx +Acme.sh + Lsky Pro + MariaDB + Picgo v1.2-奥力呦给

2.3 Lsky Pro 与 PicGo 对接设置

打开 PicGo 客户端 窗口>插件设置>搜索>lsky>安装

图片[7]-Docker Compose 部署 Nginx +Acme.sh + Lsky Pro + MariaDB + Picgo v1.2-奥力呦给

提示缺少 node.js 点击 yes 转跳至官网下载

图片[8]-Docker Compose 部署 Nginx +Acme.sh + Lsky Pro + MariaDB + Picgo v1.2-奥力呦给

下载安装

图片[9]-Docker Compose 部署 Nginx +Acme.sh + Lsky Pro + MariaDB + Picgo v1.2-奥力呦给

Node.js 安装完成后再次安装插件

图片[10]-Docker Compose 部署 Nginx +Acme.sh + Lsky Pro + MariaDB + Picgo v1.2-奥力呦给

安装完成后点击设置>配置uploader – lankong(如果没有出现设置按钮 关闭重开即可)

PicGo >插件设置>配置 uploader – lankong >设置相关选项

图片[10]-Docker Compose 部署 Nginx +Acme.sh + Lsky Pro + MariaDB + Picgo v1.2-奥力呦给

打开 Lsky Pro 后台>设置>拷贝 Token >黏贴至 PicGo >插件设置>配置 uploader – lankong >Auth Token

图片[12]-Docker Compose 部署 Nginx +Acme.sh + Lsky Pro + MariaDB + Picgo v1.2-奥力呦给
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容