# docker **Repository Path**: dnui_zjs/docker ## Basic Information - **Project Name**: docker - **Description**: docker desktop - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-12 - **Last Updated**: 2025-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Tips:教程里涉及到的软件,可以到以下网盘链接找找: https://pan.baidu.com/s/1ZA6HhrgBB3TYCXU3iYqXNw?pwd=tool 提取码: tool # 1. 安装WSL 2 ## 1.1 启用WSL功能 以管理员身份运行Windows PowerShell,并执行以下命令: wsl --update 如果网速慢或经常中断的,请自行下载离线版wsl。 或者从以下链接下载。 https://github.com/microsoft/WSL/releases/download/2.6.1/wsl.2.6.1.0.x64.msi ## 1.2 设置WSL内存限制 1) 关闭所有WSL实例: wsl --shutdown 2) 在用户目录下创建或编辑 .wslconfig 文件: notepad $HOME\.wslconfig 3) 添加以下内容并保存(设置WSL内存为8GB): [wsl2] memory=8GB swap=2GB localhostForwarding=true [experimental] autoMemoryReclaim=gradual # 开启自动回收内存 networkingMode=mirrored # 开启镜像网络 dnsTunneling=true # 开启 DNS Tunneling firewall=true # 开启 Windows 防火墙 autoProxy=true # 开启自动同步代理 sparseVhd=true # 开启自动释放 WSL2 虚拟硬盘空间 # 2 安装并迁移Ubuntu(可选) ## 2.1 安装Ubuntu 1) 打开Microsoft Store 2) 搜索并安装Ubuntu 22.04 LTS,也可以安装其他版本 3) 安装完成后,启动Ubuntu 4) 首次启动时,会要求设置用户名和密码 5) 完成设置后,即可使用Ubuntu ## 2.2 迁移Ubuntu到D盘 1) 关闭所有WSL实例: wsl --shutdown 2) 迁移Ubuntu到D盘: wsl --export Ubuntu-22.04 D:\WSL\Ubuntu-22.04.tar wsl --unregister Ubuntu-22.04 wsl --import Ubuntu-22.04 D:\WSL\Ubuntu-22.04 D:\WSL\Ubuntu-22.04.tar --version 2 3)设置默认用户为安装时的用户future wsl -d Ubuntu-22.04 -u root -- bash -c "echo -e '[user]\ndefault=future' > /etc/wsl.conf" wsl --shutdown # 3 安装Docker Desktop 1) 访问 Docker官网下载页面,获取最新版本的Docker Desktop, https://www.docker.com/products/docker-desktop/ 2) 在Docker Desktop设置中,确保已启用WSL 2集成 3) 设置环境变量path里添加如下: C:\Program Files\Docker\Docker\resources\bin 4)修改加速器 在Docker Desktop设置|Docker Engine中,添加如下加速器: { "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "registry-mirrors": [ "https://5tqw56kt.mirror.aliyuncs.com", "https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com", "https://docker.m.daocloud.io", "https://noohub.ru", "https://huecker.io", "https://dockerhub.timeweb.cloud", "https://docker.1panel.live", "http://mirrors.ustc.edu.cn/", "http://mirror.azure.cn/", "https://hub.rat.dev/", "https://docker.ckyl.me/", "https://docker.chenby.cn", "https://docker.hpcloud.cloud", "https://docker.m.daocloud.io" ] } 5)迁移docker数据目录到D盘 设置|resource|advanced Disk image location修改到D盘WSL目录下,docker desktop会自动迁移数据目录到D盘。 # 4 部署docker服务 ## 4.1 部署说明 我们提供了7个PowerShell脚本,按照01-07的顺序用于部署和管理不同的Docker服务。请根据您的需求选择合适的脚本执行。 ### 脚本列表及功能 #### 01start_mysql.ps1 - 启动MySQL服务 ```powershell # 在项目根目录下执行 .\01start_mysql.ps1 ``` - 功能:启动通用MySQL数据库服务 - 配置文件:`server\1-docker-compose-mysql.yml` - 网络:自动创建`server_network`网络 - 推荐客户端:HeidiSQL (https://www.heidisql.com/download.php) - 如果遇到指令不能执行,以管理员打开PowerShell,输入如下指令,并选择A: Set-ExecutionPolicy RemoteSigned - #### 02start_redis.ps1 - 启动Redis服务 ```powershell # 在项目根目录下执行 .\02start_redis.ps1 ``` - 功能:启动Redis缓存服务 - 配置文件:`server\2-docker-compose-redis.yml` - 网络:使用`server_network`网络 - 推荐客户端:Redis Desktop Manager或其他Redis客户端 #### 03start_neo4j.ps1 - 启动Neo4j服务 ```powershell # 在项目根目录下执行 .\03start_neo4j.ps1 ``` - 功能:启动Neo4j图数据库服务 - 配置文件:`openspg\3-docker-compose-neo4j.yml` - 主要用于OpenSPG服务的数据存储 #### 04start_openspg.ps1 - 启动OpenSPG相关服务 ```powershell # 在项目根目录下执行 .\04start_openspg.ps1 ``` - 教程:移步我另一个教程 https://www.yuque.com/iamzjs/sbdmbz/nl9btkhtzlgxgmyz?singleDoc# 《KAG实践指南》 - 功能:启动完整的OpenSPG相关服务 - 启动顺序:MySQL → Neo4j → MinIO → OpenSPG Server - 配置文件: - `openspg\4-docker-compose-openspgmysql.yml` (OpenSPG专用MySQL) - `openspg\3-docker-compose-neo4j.yml` (Neo4j) - `openspg\5-docker-compose-minio.yml` (MinIO对象存储) - `openspg\6-docker-compose-openspg.yml` (OpenSPG服务器) - 网络:使用`server_network`网络 - 用途:用于KAG实践或完整的OpenSPG功能测试 #### 05stop_and_remove_openspg.ps1 - 停止并删除OpenSPG相关服务 ```powershell # 在项目根目录下执行 .\stop_and_remove\05stop_and_remove_openspg.ps1 ``` - 功能:停止并删除OpenSPG相关的所有容器、网络和数据卷 - 停止顺序:OpenSPG Server → MinIO → Neo4j → OpenSPG MySQL - 注意:此操作会永久删除OpenSPG相关的数据 #### 06start_all_services.ps1 - 启动所有服务 ```powershell # 在项目根目录下执行 .\06start_all_services.ps1 ``` - 功能:启动所有服务(通用服务 + OpenSPG服务) - 启动顺序:通用MySQL → Redis → Neo4j → OpenSPG MySQL → MinIO → OpenSPG Server - 包含了所有服务的启动,适合需要完整环境的场景 #### 07stop_and_remove_all.ps1 - 停止并删除所有服务 ```powershell # 在项目根目录下执行 .\stop_and_remove\07stop_and_remove_all.ps1 ``` - 功能:停止并删除所有服务的容器、网络和数据卷 - 停止顺序:OpenSPG Server → MinIO → Neo4j → OpenSPG MySQL → Redis → 通用MySQL - 注意:此操作会永久删除所有服务的数据,包括通用MySQL和Redis ### 脚本使用说明 - **重复执行的影响**:如果服务已经安装并运行,再次执行脚本不会删除之前的服务,只会检查并确保所有服务都处于运行状态。 - **数据安全性**:再次执行脚本不会影响已有的数据,因为Docker容器的数据存储在持久化卷中。 - **安装与日常启动的区别**: - **首次安装**:脚本会创建所有必要的容器、网络和数据卷。 - **日常启动**:脚本仅启动已存在的容器,不会重新创建。 ## 4.2 日常操作(使用Docker Desktop) ### 启动服务 1. 打开Docker Desktop应用程序 2. 在左侧导航栏中选择"Containers"(容器) 3. 找到需要启动的服务容器(名称通常以`future-`开头) 4. 点击容器右侧的"Play"按钮(三角形图标)启动服务 5. 建议按照以下顺序启动: - future-mysql - future-redis - future-neo4j - future-minio - future-server ### 停止服务 1. 在Docker Desktop的"Containers"页面中 2. 找到需要停止的服务容器 3. 点击容器右侧的"Stop"按钮(方形图标)停止服务 4. 建议按照以下顺序停止: - future-server - future-minio - future-neo4j - future-redis - future-mysql ### 删除服务 > **注意**:删除服务会同时删除容器和相关的临时数据,但不会删除持久化存储的数据卷。 1. 在Docker Desktop的"Containers"页面中 2. 找到需要删除的服务容器 3. 点击容器右侧的"Actions"按钮(三个点图标) 4. 选择"Remove"选项删除服务 5. 如果需要完全清除所有数据,还需要在"Volumes"(卷)页面中删除相关的数据卷 ### 查看服务状态 1. 在Docker Desktop的"Containers"页面中,可以查看所有服务的运行状态 2. 绿色状态表示服务正在运行,灰色表示已停止 3. 点击容器名称可以查看详细信息,包括日志、端口映射等 ## 4.3 日常操作(使用命令) ### 手动部署步骤 如果需要手动部署,可以按照以下步骤执行: #### 网络配置 所有服务使用统一的网络名称:`server_network` ```bash # 创建网络(如果不存在) docker network create --driver bridge server_network ``` #### 文件说明 按照依赖顺序排列的docker-compose配置文件: 1. `server\1-docker-compose-mysql.yml` - 通用MySQL数据库服务 2. `server\2-docker-compose-redis.yml` - Redis缓存服务 3. `openspg\3-docker-compose-neo4j.yml` - Neo4j图数据库服务 4. `openspg\4-docker-compose-openspgmysql.yml` - OpenSPG专用MySQL数据库服务 5. `openspg\5-docker-compose-minio.yml` - MinIO对象存储服务 6. `openspg\6-docker-compose-openspg.yml` - OpenSPG服务器服务 #### 执行顺序 ##### 仅启动通用服务(MySQL和Redis) ```bash # 启动MySQL服务 docker-compose -f server\1-docker-compose-mysql.yml up -d # 启动Redis服务 docker-compose -f server\2-docker-compose-redis.yml up -d ``` ##### 启动OpenSPG相关服务 ```bash # 1. 启动Neo4j服务 docker-compose -f openspg\3-docker-compose-neo4j.yml up -d # 2. 启动OpenSPG专用MySQL服务 docker-compose -f openspg\4-docker-compose-openspgmysql.yml up -d # 3. 启动MinIO服务 docker-compose -f openspg\5-docker-compose-minio.yml up -d # 4. 启动OpenSPG服务器服务 docker-compose -f openspg\6-docker-compose-openspg.yml up -d ``` ##### 停止服务(按相反顺序) ```bash # 停止OpenSPG服务器服务 docker-compose -f openspg\6-docker-compose-openspg.yml down # 停止MinIO服务 docker-compose -f openspg\5-docker-compose-minio.yml down # 停止OpenSPG专用MySQL服务 docker-compose -f openspg\4-docker-compose-openspgmysql.yml down # 停止Neo4j服务 docker-compose -f openspg\3-docker-compose-neo4j.yml down # 停止Redis服务 docker-compose -f server\2-docker-compose-redis.yml down # 停止通用MySQL服务 docker-compose -f server\1-docker-compose-mysql.yml down # 删除网络(可选) docker network rm server_network ``` ### 查看服务状态 ```bash # 查看所有容器状态 docker ps # 查看特定服务状态(以通用MySQL为例) docker-compose -f server\1-docker-compose-mysql.yml ps ``` ### 查看服务日志 ```bash # 查看特定服务日志(以OpenSPG服务器为例) docker-compose -f openspg\6-docker-compose-openspg.yml logs # 实时查看日志 docker-compose -f openspg\6-docker-compose-openspg.yml logs -f ``` # 5 完全删除所有服务 ## 5.1 使用脚本删除服务 ### 删除所有服务(包括数据) 如果您需要完全删除所有服务、容器、网络和数据卷,可以使用以下脚本来一键清理: ```powershell # 在项目根目录下执行 .\stop_and_remove\07stop_and_remove_all.ps1 ``` **注意事项:** - 此脚本会按依赖顺序停止并删除所有容器 - 同时删除共享网络 `server_network` - 删除所有数据卷(包括两个MySQL实例、Redis、Neo4j和MinIO的数据) - 操作不可逆,所有数据将被永久删除 - 如果需要重新使用服务,需重新执行启动脚本 ### 仅删除OpenSPG相关服务(保留通用MySQL和Redis数据) 如果您只想删除OpenSPG相关的服务,而保留通用MySQL和Redis的数据,可以使用以下脚本: ```powershell # 在项目根目录下执行 .\stop_and_remove\05stop_and_remove_openspg.ps1 ``` **注意事项:** - 此脚本会删除OpenSPG相关的所有容器、网络和数据卷 - 通用MySQL和Redis服务的数据将被保留 - 操作不可逆,OpenSPG相关数据将被永久删除 ## 5.2 手动删除服务 如果需要手动删除服务,可以按照以下命令执行: ### 停止所有服务(不删除数据) ```bash # 停止OpenSPG服务器服务 docker-compose -f openspg\6-docker-compose-openspg.yml down # 停止MinIO服务 docker-compose -f openspg\5-docker-compose-minio.yml down # 停止OpenSPG专用MySQL服务 docker-compose -f openspg\4-docker-compose-openspgmysql.yml down # 停止Neo4j服务 docker-compose -f openspg\3-docker-compose-neo4j.yml down # 停止Redis服务 docker-compose -f server\2-docker-compose-redis.yml down # 停止通用MySQL服务 docker-compose -f server\1-docker-compose-mysql.yml down ``` ### 删除所有服务和数据 ```bash # 删除OpenSPG服务器服务和数据 docker-compose -f openspg\6-docker-compose-openspg.yml down -v # 删除MinIO服务和数据 docker-compose -f openspg\5-docker-compose-minio.yml down -v # 删除OpenSPG专用MySQL服务和数据 docker-compose -f openspg\4-docker-compose-openspgmysql.yml down -v # 删除Neo4j服务和数据 docker-compose -f openspg\3-docker-compose-neo4j.yml down -v # 删除Redis服务和数据 docker-compose -f server\2-docker-compose-redis.yml down -v # 删除通用MySQL服务和数据 docker-compose -f server\1-docker-compose-mysql.yml down -v # 删除网络 docker network rm server_network ```