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: 当前服务的IP
  • SPRING_DATASOURCE_PLATFORM : 使用数据库类型
  • MYSQL_SERVICE_HOST: 数据库IP地址
  • MYSQL_SERVICE_DB_NAME: 数据库名称
  • MYSQL_SERVICE_USER: 数据库用户名
  • MYSQL_SERVICE_PASSWORD: 数据库密码
  • MYSQL_DATABASE_NUM: 数据库数量,默认为1

代码毁灭世界