初始化工程踩坑点
1 Docker桌面版安装
略
2 拉取nacos并启动
2.1拉取nacos
-
去官网找到对应的镜像源
-
命令行
docker pull nacos:v2.3.1
即可拉取对应版本的nacos
2.2 启动nacos
- docker官网有很多参数,我们只需要关注这些启动参数即可
参数 | 可选值 |
---|---|
MODE | cluster 集群 / standalone 单机模式,Nacos默认的是cluster,所以我要设置成 standalone |
SPRING_DATASOURCE_PLATFORM | 数据源类型,可填写 mysql |
NACOS_APPLICATION_PORT | Nacos应用的端口,默认是 8848 |
MYSQL_SERVICE_HOST | Nacos连接MySQL数据库的IP |
MYSQL_SERVICE_PORT | Nacos连接MySQL数据库的端口号,默认 3306 |
MYSQL_SERVICE_DB_NAME | Nacos连接MySQL数据库的库名称 |
MYSQL_SERVICE_USER | Nacos连接MySQL数据库的用户名 |
MYSQL_SERVICE_PASSWORD | Nacos连接MySQL数据库的密码 |
MYSQL_DATABASE_NUM | MySQL数据库的数量,默认1 |
MYSQL_SERVICE_DB_PARAM | MySQL数据库的连接参数 |
JVM_XMS | JVM的启动参数 -Xms 默认值 1g |
JVM_XMX | JVM的启动参数 -Xmx 默认值 1g |
JVM_XMN | JVM的启动参数 -Xmn 默认值 512m |
JVM_MS | JVM的启动参数 -XX:MetaspaceSize 默认值 128m |
JVM_MMS | JVM的启动参数 -XX:MaxMetaspaceSize 默认值 320m |
- 可以看到 这里面有关数据库连接相关的信息,作用是与数据库关联用来持久化,如果需要持久化,我们需要先启动mysql,然后在启动nacos
- 如果无需持久化,那么使用命令
docker run --name jhnacos -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:v2.3.1
则启动成功 - 访问localhost:8848/nacos进行配置
2.3 添加网络
为什么要配置网络?因为 Nacos 内要连接MySQL数据库的,我的 MySQL 数据库也是用 Docker启动的,所以2个容器间要通信是需要配置他们使用相同的网络。这个操作要在启动Nacos容器之前。
这是需要持久化的额外操作
-
查看原有网络,使用命令
docker network ls
会显示出 docker 环境内的所有网络配置 -
创建自己的网络,
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 jhnetwork
--driver bridge 设置桥接模式
--subnet 192.168.0.0/16 子网掩码,16表示65535个网络,192.168.0.2~~192.168.255.255
--gateway 192.168.0.1 网关
- 可查看创建详情,
docker network inspect jhnetwork
2.4 启动mysql
- 命令行
docker pull mysql:8.0.28
即可拉取mysql - 命令
docker run -p 3306:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=123456 -d --net mynetwork mysql:8.0.28
2.5持久化启动nacos
docker run --env MODE=standalone
--env SPRING_DATASOURCE_PLATFORM=mysql
--env MYSQL_DATABASE_NUM=1
--env MYSQL_SERVICE_HOST=192.168.0.2
--env MYSQL_SERVICE_PORT=3306
--env MYSQL_SERVICE_DB_NAME=nacos_db
--env MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8"&"connectTimeout=1000"&"socketTimeout=3000"&"autoReconnect=true"&"useUnicode=true"&"useSSL=false"&"serverTimezone=UTC
--env MYSQL_SERVICE_USER=root
--env MYSQL_SERVICE_PASSWORD=123456
--env JVM_XMS=512m
--env JVM_XMX=512m
--env JVM_XMN=256m
--env JVM_MS=64m
--env JVM_MMS=256m
--name mynacos -d -p 8848:8848
--net mynetwork nacos/nacos-server:v2.3.1