本文最后更新于22 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
部署步骤
1. 创建部署目录
# 创建项目目录
mkdir -p /data/domain
cd /data/domain
# 创建必要的子目录
mkdir -p logs mysql_data
2. 创建 docker-compose.yml
version: '3.3'
services:
# MySQL数据库服务
mysql:
image: mysql:5.7.18
container_name: domain-admin-mysql
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: mysql1sGreat # root密码【请修改】
MYSQL_DATABASE: domain_admin # 自动创建的数据库
MYSQL_USER: domain # 应用用户名【可自定义】
MYSQL_PASSWORD: domain1sGreat # 应用密码【请修改】
TZ: Asia/Shanghai
volumes:
- './mysql_data:/var/lib/mysql' # 数据持久化
- './mysql_conf:/etc/mysql/conf.d' # 配置文件
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
networks:
- domain-net
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 10s
retries: 5
# Domain-Admin应用服务
domain-admin:
image: mouday/domain-admin:latest
container_name: domain-admin
restart: always
ports:
- '8000:8000' # Web访问端口
volumes:
- './logs:/app/logs' # 日志目录
environment:
# 数据库连接(关键配置)
- DB_CONNECT_URL=mysql://domain:domain1sGreat@mysql:3306/domain_admin
# Gunicorn配置(可选)
- GUNICORN_WORKERS=1
- GUNICORN_THREADS=1
dns:
- 8.8.8.8 # Google DNS
- 114.114.114.114 # 国内DNS
- 223.5.5.5 # 阿里DNS
depends_on:
mysql:
condition: service_healthy
command: gunicorn domain_admin.main:app --timeout 300 --bind 0.0.0.0:8000
networks:
- domain-net
networks:
domain-net:
driver: bridge
默认使用的是 SQLite 数据库,并发能力有限:SQLite 在写入操作时是锁表的,写入频繁,可能会出现
database is locked报错,如果有大量域名需要监控建议使用mysql当作数据库
配置环境目录在/app/domain_admin/config/env_config.py
3.启动服务
# 拉取镜像并启动
docker-compose up -d
# 查看启动状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 检查容器状态
docker ps | grep domain
# 测试Web访问
curl http://localhost:8000
# 登录信息
用户名: admin
密码: 123456
# 测试MySQL连接
docker exec -it domain-admin-mysql mysql -udomain -pdomain1sGreat -e "SHOW DATABASES;"


