内网环境 Docker 部署方案(银河麒麟 V10)
环境准备
系统要求
- CPU: 4 核(建议 8 核)
- 内存: 8 GB(建议 16 GB)
- 磁盘: 50 GB(建议 100 GB+)
- 操作系统: 银河麒麟 V10 SP3 或更高版本
目录结构规划
mkdir -p /opt/app/dzgzglxt/{mysql,redis,minio,kkfileview,nginx,backend} mkdir -p /opt/app/dzgzglxt/mysql/{data,conf} mkdir -p /opt/app/dzgzglxt/redis/{data,conf} mkdir -p /opt/app/dzgzglxt/minio/{data,config} mkdir -p /opt/app/dzgzglxt/kkfileview/{config,file} mkdir -p /opt/app/dzgzglxt/nginx/{conf,html,logs} mkdir -p /opt/app/dzgzglxt/backend/backup端口规划
- MySQL: 3306
- Redis: 6379
- MinIO API: 9000
- MinIO Console: 9001
- KKFileView: 8012
- SpringBoot 后端: 48080
- Nginx: 80/443
Docker 安装与配置
配置 YUM 源
mkdir -p /etc/yum.repos.d/backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ cat > /etc/yum.repos.d/CentOS-Base.repo << 'EOF' [base] name=CentOS-8 - Base - mirrors.aliyun.com baseurl=https://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/$basearch/os/ gpgcheck=0 enabled=1 [appstream] name=CentOS-8 - AppStream - mirrors.aliyun.com baseurl=https://mirrors.aliyun.com/centos-vault/8.5.2111/AppStream/$basearch/os/ gpgcheck=0 enabled=1 [extras] name=CentOS-8 - Extras - mirrors.aliyun.com baseurl=https://mirrors.aliyun.com/centos-vault/8.5.2111/extras/$basearch/os/ gpgcheck=0 enabled=1 EOF yum clean all yum makecache安装 Docker
yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sed -i 's/$releasever/8/g' /etc/yum.repos.d/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin配置 Docker 守护进程
mkdir -p /etc/docker cat > /etc/docker/daemon.json << 'EOF' { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://mirror.ccs.tencentyun.com" ], "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" }, "storage-driver": "overlay2" } EOF systemctl daemon-reload systemctl start docker systemctl enable docker内网镜像准备
# 在有网环境导出镜像 docker save mysql:8.0 -o mysql-8.0.tar docker save redis:7.2 -o redis-7.2.tar docker save minio/minio:RELEASE.2024-01-01T16-36-33Z -o minio.tar docker save keking/kkfileview:4.4.0 -o kkfileview-4.4.0.tar docker save nginx:1.28.3 -o nginx-1.28.3.tar docker save eclipse-temurin:17-jre -o temurin-17-jre.tar # 内网环境加载镜像 docker load -i mysql-8.0.tar docker load -i redis-7.2.tar docker load -i minio.tar docker load -i kkfileview-4.4.0.tar docker load -i nginx-1.28.3.tar docker load -i temurin-17-jre.tar部署 MySQL
配置文件准备
cat > /opt/app/dzgzglxt/mysql/conf/my.cnf << 'EOF' [mysqld] port=3306 character-set-server=utf8mb4 collation-server=utf8mb4_general_ci default-time-zone='+08:00' max_connections=500 innodb_buffer_pool_size=1G innodb_log_file_size=256M slow_query_log=1 slow_query_log_file=/var/log/mysql/slow.log long_query_time=2 lower_case_table_names=1 [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 EOF启动容器
docker run -d \ --name dzgzglxt-mysql \ --network host \ --restart=always \ -e MYSQL_ROOT_PASSWORD=YourStrongPassword@2026 \ -e MYSQL_DATABASE=dzgzglxt \ -e TZ=Asia/Shanghai \ -v /opt/app/dzgzglxt/mysql/data:/var/lib/mysql \ -v /opt/app/dzgzglxt/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf \ mysql:8.0 \ --default-authentication-plugin=mysql_native_password部署 Redis
配置文件准备
cat > /opt/app/dzgzglxt/redis/conf/redis.conf << 'EOF' bind 0.0.0.0 port 6379 protected-mode no daemonize no requirepass YourRedisPassword@2026 dir /data appendonly yes EOF启动容器
docker run -d \ --name dzgzglxt-redis \ --network host \ --restart=always \ -v /opt/app/dzgzglxt/redis/data:/data \ -v /opt/app/dzgzglxt/redis/conf/redis.conf:/etc/redis/redis.conf \ redis:7.2 \ redis-server /etc/redis/redis.conf