转载参考:https://blog.csdn.net/xieqing_xq/article/details/105458887
1、拉取Nacos镜像到本地docker
[root@10-13-4-243 ~]# docker pull nacos/nacos-server
Using default tag: latest
latest: Pulling from nacos/nacos-server
5ad559c5ae16: Pull complete
a2e30b74e44b: Pull complete
385912b57b4a: Pull complete
68acb598407d: Pull complete
6da34daed01e: Pull complete
d0cdcbcde94c: Pull complete
4e0096b44911: Pull complete
5296eae70ba4: Pull complete
a2d52873c1a0: Pull complete
2a892c27ed04: Pull complete
3a670bc37ae9: Pull complete
Digest: sha256:6fa22b9221c571aa66e9675547e8d5ecd403bca01aca7c68957b7c2ae362477a
Status: Downloaded newer image for nacos/nacos-server:latest
docker.io/nacos/nacos-server:latest
2、查看镜像
[root@10-13-4-243 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nacos/nacos-server latest ef8e53226440 5 days ago 914MB
3、新建nacos容器
[root@10-13-4-243 /]# docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server
3c5f13bfd7a96e47cabf34c74a0f9749f2b014540c2b556f12aeb290e014b015
或用更详细的配置参数
docker run -d \
--name nacos\
--network common-network \
-e PREFER_HOST_MODE=hostname \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_MASTER_SERVICE_HOST=mysql-master \
-e MYSQL_MASTER_SERVICE_PORT=3306 \
-e MYSQL_MASTER_SERVICE_USER=root \
-e MYSQL_MASTER_SERVICE_PASSWORD=Passw0rd \
-e MYSQL_MASTER_SERVICE_DB_NAME=nacos \
-e MYSQL_SLAVE_SERVICE_HOST=mysql-slave \
-e MYSQL_SLAVE_SERVICE_PORT=3306 \
-p 8848:8848 \
nacos/nacos-server
配置参数说明:
配置项 | 描述 | 可选参数 | 默认值 |
---|---|---|---|
MODE | 模式 cluster/standalone | cluster/standalone | cluster |
PREFER_HOST_MODE | 是否支持 hostname | hostname/ip | ip |
NACOS_SERVER_PORT | 服务端口号 | 8848 | |
SPRING_DATASOURCE_PLATFORM | 单机模式支持 mysql | mysql / empty | empty |
MYSQL_MASTER_SERVICE_HOST | mysql 主节点 host | ||
MYSQL_MASTER_SERVICE_PORT | mysql 主节点 port | 3306 | |
MYSQL_MASTER_SERVICE_DB_NAME | mysql 主节点数据库名 | ||
MYSQL_MASTER_SERVICE_USER | mysql 主节点用户名 | ||
MYSQL_MASTER_SERVICE_PASSWORD | mysql 主节点密码 | ||
MYSQL_SLAVE_SERVICE_HOST | mysql 从节点 host | ||
MYSQL_SLAVE_SERVICE_PORT | mysql 从节点 port | 3306
|
4、查看启动的容器
[root@10-13-4-243 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3c5f13bfd7a9 nacos/nacos-server "bin/docker-startup.…" 12 hours ago Up 18 minutes 0.0.0.0:8848->8848/tcp nacos
5、浏览器访问 http://ip/nacos,即可见到界面。
6、nacos数据库
Nacos 在 0.7 版本之前,默认使用的是嵌入式数据库 Apache Derby 来存储数据(内嵌的数据库会随着 Nacos 一起启动,无需额外安装);0.7 版本及以后,增加了对 MySQL 数据源的支持。
7、若使用mysql数据库
- 进入nacos容器修改配置
[root@10-13-4-243 home]# docker exec -it nacos bash
[root@3c5f13bfd7a9 nacos]# cd conf/
[root@3c5f13bfd7a9 conf]# ls
application.properties nacos-logback.xml schema.sql
[root@3c5f13bfd7a9 conf]# vi application.properties
- 修改配置文件
jdbc连接数据库的编码也要正确
db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST:172.16.0.12}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos_config}?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=${MYSQL_SSL_ENABLE:false
如果数据库nacos_config的字符集是utf8,这地方就填utf8,如果nacos_config字符集是utf8mb4,连接的时候用utf8就失败了。nacos就无法运行。
- 数据库表
https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql
- 重启容器
docker restart nacos