前言:教程基于docker-compose完成,请自行安装docker和docker-compose

安装MySQL

创建文件夹

mkdir -p /root/mysql
cd /root/mysql && touch docker-compose.yml
vim docker-compose.yml

将以下配置复制并修改

services:
  mysql8.0:
    image: mysql
    container_name: mysql8.0
    restart: always
    logging: 
      driver: "json-file"
      options: 
        max-size: "100m"
    environment:
      TZ: Asia/Shanghai
      # root 密码
      MYSQL_ROOT_PASSWORD: mynodequery
      # 初始化数据库(后续的初始化sql会在这个库执行)
      MYSQL_DATABASE: mynodequery
      # 初始化用户(不能是root 会报错, 后续需要给新用户赋予权限)
      MYSQL_USER: mynodequery
      # 用户密码
      MYSQL_PASSWORD: mynodequery
    ports:
      - 3306:3306
    network_mode: bridge
    volumes:
      - /root/mysql/data/:/var/lib/mysql/
      - /root/mysql/conf/:/etc/mysql/conf.d/
      - /root/mysql/init/:/docker-entrypoint-initdb.d/
      - /root/mysql/mysqlBackup:/data/mysqlBackup
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
      - --explicit_defaults_for_timestamp=true
      - --lower_case_table_names=1
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "--silent"]
      interval: 10s
      retries: 3
      start_period: 30s

启动

docker-compose up -d

安装MyNodeQuery

创建文件夹

mkdir -p /root/MyNodeQuery && cd /root/MyNodeQuery && touch docker-compose.yml

编辑配置

touch appsettings.json
vim appsettings.json
{
  "Logging": {
      "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
      }
  },
  "MySql": {
      "ConnectionString": ""
  },
  "AllowedHosts": "*",
  "Installed": "false",
  "ReadNodeIpHeaderKey": "X-Real-IP"
 }
vim /root/MyNodeQuery/docker-compose.yml
services:
  mynodequery:
    image: jaydenlee2019/mynodequery:latest
    container_name: mynodequery
    ports:
      - 5000:5000
    network_mode: bridge
    volumes:
      - /root/MyNodeQuery/appsettings.json:/app/appsettings.json

启动

docker-compose up -d

访问

http://yourip:5000

获取docker内网IP(可选,可直接使用公网IP)

  • 列出所有容器的名称或 ID:
docker ps -q
  • 获取每个容器的 IP 地址:
docker ps -q | xargs -n 1 docker inspect --format '{{ .Name }}: {{ .NetworkSettings.IPAddress }}'

image-xepo.png

客户端卸载

rm -rf /etc/mynodequery && (crontab -u mynodequery -l | grep -v "/etc/mynodequery/mynq-agent.sh") | crontab -u mynodequery - && userdel mynodequery

反代

caddy配置

domain.com {
    encode gzip
    reverse_proxy 127.0.0.1:5000
}