ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Docker快速部署基础中间件

2026/8/14 16:45:42 拓冰建站 浏览量
Docker快速部署基础中间件 环境宿主机挂载目录/data/middleware ├── mysql ├── redis └── nacosMySQL镜像mysql:5.7容器名mysql57_xj宿主端口3406容器端口3306密码YQs2UkB4yRedis镜像redis:6.2容器名redis6_xj宿主端口6479容器端口6379密码YQs2UkB4yNacos镜像nacos/nacos-server:v2.0.4容器名nacos_xj端口8848/9848/9849不开启鉴权一、创建目录执行mkdir -p /data/middleware/mysql mkdir -p /data/middleware/redis mkdir -p /data/middleware/nacos检查ls -l /data/middleware二、部署 MySQL 5.71. 创建配置文件目录mkdir -p /data/middleware/mysql/conf创建配置vim /data/middleware/mysql/conf/my.cnf内容[mysqld] character-set-serverutf8mb4 collation-serverutf8mb4_unicode_ci default-time-zone08:00 max_connections500 skip-name-resolve innodb_buffer_pool_size512M2. 启动 MySQL执行docker run -d \ --name mysql57_xj \ --restart always \ -p 3406:3306 \ -e MYSQL_ROOT_PASSWORDYQs2UkB4y \ -e TZAsia/Shanghai \ -v /data/middleware/mysql/data:/var/lib/mysql \ -v /data/middleware/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf \ mysql:5.73. 查看 MySQLdocker ps | grep mysql57_xj日志docker logs -f mysql57_xj看到ready for connections表示启动成功。4. 登录测试docker exec -it mysql57_xj mysql -uroot -p密码YQs2UkB4y测试select version();三、部署 Redis 6.21. 创建 Redis 配置目录mkdir -p /data/middleware/redis/conf创建配置vim /data/middleware/redis/conf/redis.conf内容bind 0.0.0.0 protected-mode no requirepass YQs2UkB4y appendonly yes appendfsync everysec2. 启动 Redis执行docker run -d \ --name redis6_xj \ --restart always \ -p 6479:6379 \ -v /data/middleware/redis/data:/data \ -v /data/middleware/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \ redis:6.2 \ redis-server /usr/local/etc/redis/redis.conf3. 测试 Redis进入docker exec -it redis6_xj redis-cli认证auth YQs2UkB4y测试ping返回PONG四、部署 Nacos 2.0.41. 创建目录mkdir -p /data/middleware/nacos/logs2. 启动 Nacos执行docker run -d \ --name nacos_xj \ --restart always \ -p 8848:8848 \ -p 9848:9848 \ -p 9849:9849 \ -e MODEstandalone \ -e TZAsia/Shanghai \ -e NACOS_AUTH_ENABLEfalse \ -v /data/middleware/nacos/logs:/home/nacos/logs \ nacos/nacos-server:v2.0.43. 查看 Nacosdocker ps | grep nacos_xj日志docker logs -f nacos_xj启动成功Nacos started successfully4. 访问浏览器http://服务器IP:8848/nacos默认账号: nacos 密码: nacos当前鉴权关闭五、最终检查查看所有 xj 容器docker ps | grep _xj应该mysql57_xj redis6_xj nacos_xj端口netstat -tunlp | grep -E 3406|6479|8848|9848|9849命令行创建数据库和导入sql文件一、先创建 4 个数据库进入 MySQLdocker exec -it mysql57_xj mysql -uroot -p输入YQs2UkB4y进入后执行CREATE DATABASE dmp DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE link5g_mes DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE link5g DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE odsdb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;查看SHOW DATABASES;应该看到dmp link5g_mes link5g odsdb退出exit;二、准备 SQL 文件假设你现在有dmp.sql link5g_mes.sql link5g.sql odsdb.sql例如放在/data/sql/查看ls -lh /data/sql/应该/data/sql/dmp.sql /data/sql/link5g_mes.sql /data/sql/link5g.sql /data/sql/odsdb.sql三、导入数据库1. 导入 dmp执行docker exec -i mysql57_xj mysql -uroot -pYQs2UkB4y dmp /data/sql/dmp.sql2. 导入 link5g_mesdocker exec -i mysql57_xj mysql -uroot -pYQs2UkB4y link5g_mes /data/sql/link5g_mes.sql3. 导入 link5gdocker exec -i mysql57_xj mysql -uroot -pYQs2UkB4y link5g /data/sql/link5g.sql4. 导入 odsdbdocker exec -i mysql57_xj mysql -uroot -pYQs2UkB4y odsdb /data/sql/odsdb.sql四、检查是否导入成功进入 MySQLdocker exec -it mysql57_xj mysql -uroot -pYQs2UkB4y查看USE dmp; SHOW TABLES;其他USE link5g_mes; SHOW TABLES; USE link5g; SHOW TABLES; USE odsdb; SHOW TABLES;查询每个库有多少张表SELECT s.SCHEMA_NAME AS database_name, COUNT(t.TABLE_NAME) AS table_count FROM information_schema.SCHEMATA s LEFT JOIN information_schema.TABLES t ON s.SCHEMA_NAME t.TABLE_SCHEMA WHERE s.SCHEMA_NAME NOT IN ( information_schema, mysql, performance_schema, sys ) GROUP BY s.SCHEMA_NAME ORDER BY s.SCHEMA_NAME;五、如果 SQL 文件很大推荐如果单个 SQL 几百 MB 或几个 GB建议加参数docker exec -i mysql57_xj mysql \ -uroot \ -pYQs2UkB4y \ --max_allowed_packet1G \ dmp /data/sql/dmp.sql否则可能报MySQL server has gone away六、导入前建议检查 SQL 文件先看开头head -30 /data/sql/dmp.sql如果里面有CREATE DATABASE xxx; USE xxx;可能会覆盖你刚创建的库。如果看到DROP DATABASE或者CREATE DATABASE导入命令示例:先创建数据库docker exec -it mysql57_xj mysql -uroot -pYQs2UkB4y -e CREATE DATABASE IF NOT EXISTS dmp DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE IF NOT EXISTS link5g_mes DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE IF NOT EXISTS link5g DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE IF NOT EXISTS odsdb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;导入 dmp.sql → dmp库docker exec -i mysql57_xj mysql -uroot -pYQs2UkB4y dmp /data/temp/dmp.sql如果 SQL 文件比较大docker exec -i mysql57_xj mysql -uroot -pYQs2UkB4y --max_allowed_packet1G dmp /data/temp/dmp.sql