【Docker】MySQL、Reids、Mongodb、Nacos、RabitMQ安装指南

1 docker的下载

建议通过 火绒应用商店 或者 联想应用商店 下载

2 配置Docker

配置镜像站 https://docker.1panel.live

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors":[
     "https://docker.1panel.live"
   ]
}

image

Redis

docker pull redis:latest
docker run -itd --name redis -p 6379:6379 redis

如果已有配置文件

docker run -itd --name redis -p 6379:6379 -v C:/data/redis/redis-conf:/usr/local/etc/redis redis redis-server /usr/local/etc/redis/redis.conf

容器启动时设置密码

docker run -d --name redisPwd -p 6379:6379 redis --requirepass "123456"

MYSQL

docker pull mysql:latest
docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

注意:有需求的话自行指定版本号 docker pull mysql:5.7 不指定的话下载的最新版本哦

如果连接数据库遇到错误 “Public Key Retrieval is not allowed”。
请先执行:

ALTER USER 'root'@'localhost' IDENTIFIED BY '账号';
ALTER USER 'root'@'%' IDENTIFIED BY '密码';

如果想指定认证插件,可以参考下面代码(注意:mysql_native_password是5x版本的,8x是caching_sha2_password,不清楚也没特殊要求,就执行上面的代码就行)

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

注意,8x版本如果进行上述设置还无法认证,可以考虑在 JDBC URL 中添加允许公钥检索:

allowPublicKeyRetrieval=true

如果想设置max_allowed_packet 可以添加参数--max-allowed-packet=1073741824

例如

docker run -d   --name mysql57  -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456   -v C:\env\mysql\data:/var/lib/mysql mysql:5.7  --max-allowed-packet=1073741824

验证

docker exec -it mysql57 mysql -u root -p123456

SHOW VARIABLES LIKE 'max_allowed_packet';

Nacos

docker pull nacos/nacos-server

【不推荐】只适合v1版本

docker run --name nacos -itd -p 8848:8848 -p 9848:9848 -p 9849:9849 --restart=always -e MODE=standalone nacos/nacos-server

打开nacos:http://localhost:8848/nacos

注意:从 Nacos 2.0+ 开始,必须设置 NACOS_AUTH_TOKE,可以在cmd中执行下面的命令,获取一个随机的base64编码(至少32位长度)

>openssl rand -base64 32

image

从2.4+开始,必须显式设置两个环境变量,用于生成和验证 JWT Token:

环境变量 说明
NACOS_AUTH_IDENTITY_KEY JWT 签名的“键”(Key),建议设为 serverIdentity
NACOS_AUTH_IDENTITY_VALUE JWT 签名的“值”(Value),自定义字符串,如 security
NACOS_AUTH_TOKEN 登录用的 token 密码(明文即可,镜像会自动处理)

注意:Nacos 3.x 的 控制台端口变了!

image

官方文档地址 https://nacos.io/en/docs/v3.0/manual/admin/deployment/deployment-overview/

【推荐运行下面这个代码】

docker run --name nacos -itd -p 8848:8848 -p 9848:9848 -p 9849:9849 -p 18848:8080 --restart=always -e MODE=standalone  -e NACOS_AUTH_TOKEN=Lqo5zVf7/s0DDqAPLw8lhfxgprsiT5MXIPSvhBM4j+M= -e NACOS_AUTH_IDENTITY_KEY=xrilang -e NACOS_AUTH_IDENTITY_VALUE=justplay nacos/nacos-server

如果需要数据持久化:

【推荐运行下面这个代码】使用 Docker 卷持久化数据,防止重启丢失配置

docker run --name nacos -itd -p 8848:8848 -p 9848:9848 -p 18848:8080 --restart=always -e MODE=standalone  -e NACOS_AUTH_TOKEN=Lqo5zVf7/s0DDqAPLw8lhfxgprsiT5MXIPSvhBM4j+M= -v nacos_data:/home/nacos/data -e NACOS_AUTH_IDENTITY_KEY=xrilang -e NACOS_AUTH_IDENTITY_VALUE=justplay nacos/nacos-server

删除旧的数据卷(会丢失配置!)
docker volume rm nacos_data

【不太推荐,非特殊情况没必要这样折腾,就用上面的运行命令就行】也可以挂载到本地目录,但是windows的话需要做个配置

如果你坚持使用本地目录,请确保:

  • 路径存在:C:\ProgramData\Docker\Nacos\data
  • 在 Docker Desktop 中开启共享:
  • 打开 Docker Desktop → Settings → Resources → File Sharing
  • 添加路径:C:\ProgramData\Docker\Nacos
  • 点击 Apply & Restart
docker run --name nacos -itd -p 8848:8848 -p 9848:9848 -p 9849:9849 -p 18848:8080 --restart=always -e MODE=standalone -e NACOS_AUTH_TOKEN=Lqo5zVf7/s0DDqAPLw8lhfxgprsiT5MXIPSvhBM4j+M= -v nacos_data:/home/nacos/data -v C:/ProgramData/Docker/Nacos/data:/home/nacos/data -e NACOS_AUTH_IDENTITY_KEY=xrilang -e NACOS_AUTH_IDENTITY_VALUE=justplay nacos/nacos-server

访问请访问: http://localhost:18848/nacos

访问完毕之后,用户名nacos,不需要输入密码,直接点登录,会弹出弹窗,为你生成密码。

你复制密码,登录进去,然后记得点击右上角修改密码

RabitMQ

docker pull docker.io/macintoshplus/rabbitmq-management
docker run -d  -p 5671:5671 -p 5672:5672  -p 15672:15672 -p 15671:15671  -p 25672:25672  rabbitmq_image_id#

MongoDB

docker pull mongo:latest
docker run -d -p 27017:27017 --name mongodb mongo

其他

把容器的文件复制一份出来

docker cp 容器名字:容器路径 宿主机路径

更细日志

本文最后更新:2025年0825

  • 增加nacos v2版本的docker镜像部署
posted @ 2025-03-22 20:13  萌狼蓝天  阅读(50)  评论(0)    收藏  举报