前言:教程基于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 }}'
客户端卸载
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
}