一、安装docker
我使用的是centos 7.9的系统版本,三个服务器IP分别是:172.18.0.5,172.18.0.6,172.18.0.7
1.每个服务器都执行:
yum install docker -y
2.修改/etc/docker/daemon.json,添加镜像源地址
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn/"
]
}
3.设置为开机自动启动
systemctl enable docker.service
4.启动docker:
systemctl start docker
二、拉取镜像:
docker pull nacos/nacos-server
三、构造docker 启动命令:
docker run -d \
--name nacos \
##这里务必是--net=host,千万不要使用-p来映射端口,原因会在下面说明
--net=host \
## 集群模式
-e MODE=cluster \
## 启动每个节点的时候改为该服务器的IP地址
-e NACOS_SERVER_IP=172.18.0.7 \
## nacos启动端口
-e NACOS_SERVER_PORT=8848 \
## 每个节点的IP端口列表
-e NACOS_SERVERS=172.18.0.5:8848,172.18.0.6:8848,172.18.0.7:8848 \
## 使用的数据库类别
-e SPRING_DATASOURCE_PLATFORM=mysql \
## 数据库地址
-e MYSQL_SERVICE_HOST=192.168.18.102 \
## 数据库端口
-e MYSQL_SERVICE_PORT=3306 \
## 数据库用户名
-e MYSQL_SERVICE_USER=xxxx \
##数据库密码
-e MYSQL_SERVICE_PASSWORD=xxxxxxxxx \
## nacos的数据库名
-e MYSQL_SERVICE_DB_NAME=nacos \
## 关闭access_log日志,因为这个日志打印非常多,非常占磁盘,平时也没什么用
-e TOMCAT_ACCESSLOG_ENABLED=false \
--privileged=true \
--restart=always \
-e JVM_XMS=2048m \
-e JVM_XMX=2048m \
-v /home/nacos/logs:/home/nacos/logs \
nacos/nacos-server
以上参数详细请参考官方
四、准备数据库:
按官网方式准备就好了,不管你使用docker部署的,还是其他云服务器,只要地址、数据库名、账号密码没问题就行
五、启动:
六、配置服务:
Springboot dubbo 配置地址,我这里演示就配置一个就行了,正常使用下,需要用nginx配置域名转发到三个nacos节点,这里就配置域名地址就行了:
nacos://172.18.0.5:8848
域名地址:
nacos://xxxx.xxxx.com
七、查看:
分别访问:http://172.18.0.5:8848/nacos,http://172.18.0.6:8848/nacos,http://172.18.0.7:8848/nacos
八、出现的问题:
1.节点间访问的问题:
因为之前我使用了-p 8848:8848进行的端口映射,导致节点相互无法访问,如下图异常日志所示,通过查看naming日志发现,nacos还需要暴露更多的端口,比如7848端口,索性就使用--net=host进行启动:
1.docker启动报异常:
/usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:235: starting container process caused "container init exited prematurely"
我参考以下方式重新安装了docker-ce
https://blog.csdn.net/weixin_44868863/article/details/91409710