docker部署nacos集群
1、拉取镜像
docker pull nacos/nacos-server
2、单机部署
单机版部署很简单,直接一条命令即可完成,通过 MODE
来设置使用单机模式;注意如果是多网卡的话需要配置NACOS_SERVER_IP参数来指定IP,否则可能会导致外网无法访问:
docker run -d --restart always --name nacos-server-1 --network mybridge --ip 172.18.18.102 -p 8848:8848 --env MODE=standalone --env NACOS_SERVER_IP=172.18.18.102 nacos/nacos-server
参数说明:
- -d 后台运行
- --name 容器的名称
- -p 外部访问端口:内部被映射端口
- --env 变量
启动成功后访问 http://localhost:8848/nacos/
即可,默认是账号和密码都是nacos。
3、集群部署
准备两台或多台服务器(三台服务器保持nacos镜像的版本一致); 然后分别执行以下内容 注意NACOS_SERVER_IP
参数需要修改为各个服务器自己的IP地址
docker run -d --restart always --name nacos-server-1 --network mybridge --ip 172.18.18.102 -p 18848:8848 --env NACOS_SERVERS=172.18.18.102,172.18.18.103,172.18.18.104 --env NACOS_SERVER_IP=172.18.18.102 --env SPRING_DATASOURCE_PLATFORM=mysql --env MYSQL_SERVICE_HOST=172.18.18.100 --env MYSQL_SERVICE_DB_NAME=nacos_config --env MYSQL_SERVICE_USER=root --env MYSQL_SERVICE_PASSWORD=root --env MYSQL_DATABASE_NUM=1 nacos/nacos-server
docker run -d --restart always --name nacos-server-2 --network mybridge --ip 172.18.18.103 -p 28848:8848 --env NACOS_SERVERS=172.18.18.102,172.18.18.103,172.18.18.104 --env NACOS_SERVER_IP=172.18.18.103 --env SPRING_DATASOURCE_PLATFORM=mysql --env MYSQL_SERVICE_HOST=172.18.18.100 --env MYSQL_SERVICE_DB_NAME=nacos_config --env MYSQL_SERVICE_USER=root --env MYSQL_SERVICE_PASSWORD=root --env MYSQL_DATABASE_NUM=1 nacos/nacos-server
docker run -d --restart always --name nacos-server-3 --network mybridge --ip 172.18.18.104 -p 38848:8848 --env NACOS_SERVERS=172.18.18.102,172.18.18.103,172.18.18.104 --env NACOS_SERVER_IP=172.18.18.104 --env SPRING_DATASOURCE_PLATFORM=mysql --env MYSQL_SERVICE_HOST=172.18.18.100 --env MYSQL_SERVICE_DB_NAME=nacos_config --env MYSQL_SERVICE_USER=root --env MYSQL_SERVICE_PASSWORD=root --env MYSQL_DATABASE_NUM=1 nacos/nacos-server
参数说明:
NACOS_SERVERS
: 集群节点信息NACOS_SERVER_IP
: 当前服务的IPSPRING_DATASOURCE_PLATFORM
: 使用数据库类型MYSQL_SERVICE_HOST
: 数据库IP地址MYSQL_SERVICE_DB_NAME
: 数据库名称MYSQL_SERVICE_USER
: 数据库用户名MYSQL_SERVICE_PASSWORD
: 数据库密码MYSQL_DATABASE_NUM
: 数据库数量,默认为1
代码毁灭世界