尚硅谷-使用docker-Nacos集群部署-可持久化

ps: 我使用的是docker配置nginx、nacos、mysql 步骤有点复杂 作此记录

Mysql配置

#1、下载mysql5.7
docker pull mysql:5.7

#2、启动mysql
docker run --name mysql5.7 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

		--name取别名
		-d后台运行
		-p 把容器的3306端口与主机3306端口做映射
		-e 传递环境变量 MYSQL_ROOT_PASSWORD=123456设置mysql密码

#3、进入mysql
mysql -uroot -p123456
默认root用户名

Nacos配置

#1、下载nacos
docker pull nacos/nacos-server
#2、创建nacos在主机上挂载的配置文件目录
mkdir -p /usr/etc/nacos
#3、启动nacos容器(才会自动生成cluster.conf文件)
docker run --name nacos -d -p 8848:8848 nacos/nacos-server
#4、拷贝nacos容器配置文件
docker cp [容器id/容器别名]:/home/nacos/conf /usr/etc/nacos
#5、修改主机挂载目录的application.properties及cluster.conf文件
	1、application.properties
	#添加以下内容 请将ip及用户名、密码更改为自己的
	`
	spring.datasource.platform=mysql
	db.num=1
	db.url.0=jdbc:mysql://192.168.0.113:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
	db.user=root
	db.password=123456
	`

	2、cluster.conf
	#配置三台nacos 端口号分别为 3333 4444 5555 
	#该ip必须为hostname -i命令显示的ip地址
	`
	192.168.0.113:3333
	192.168.0.113:4444
	192.168.0.113:5555
	`
#6.启动(默认MODE=cluster集群模式)
docker run --name nacos-3333-pay-cloud -d -p 3333:8848 -v /usr/etc/nacos/conf/:/home/nacos/conf -e JVM_XMS=256m -e JVM_XMX=512m -e MYSQL_SERVICE_PORT=3306 -e NACOS_SERVER_IP=192.168.0.113 nacos/nacos-server:1.3.2
docker run --name nacos-4444-pay-cloud -d -p 4444:8848 -v /usr/etc/nacos/conf/:/home/nacos/conf -e JVM_XMS=256m -e JVM_XMX=512m -e MYSQL_SERVICE_PORT=3306 -e NACOS_SERVER_IP=192.168.0.113 nacos/nacos-server:1.3.2
docker run --name nacos-5555-pay-cloud -d -p 5555:8848 -v /usr/etc/nacos/conf/:/home/nacos/conf -e JVM_XMS=256m -e JVM_XMX=512m -e MYSQL_SERVICE_PORT=3306 -e NACOS_SERVER_IP=192.168.0.113 nacos/nacos-server:1.3.2
	-v 挂载目录
	ps:如果出现启动容器后 容器状态为exited(1) 有可能是虚拟内存不足引起的

遇到一个问题:nacos一直启动不成功
用docker logs nacos-3333-pay-cloud查看日志得知nacos找不到mysql端口号
启动时使用 -e MYSQL_SERVICE_PORT=3306即可正常启动

Nginx配置

#1、下载nginx
docker pull nginx
#2、启动nginx
docker run -d nginx
#3、拷贝配置文件到主机
docker cp nginx:/etc/nginx /usr/etc
#4、更改主机/usr/etc/nginx/conf.d/default.conf文件
	`
	upstream cluster{					#新增
        server 192.168.0.113:3333;
        server 192.168.0.113:4444;
        server 192.168.0.113:5555;
	}
	server {
    listen       1111;					#改动
    listen  [::]:80;					
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        #root   /usr/share/nginx/html;	#改动
        #index  index.html index.htm;	#改动
        proxy_pass http://cluster		#改动
    }
`#5、启动nginx
docker run --name nginx-1111-pay-cloud -d -p 1111:1111 -v /usr/etc/nginx/conf.d:/etc/nginx/conf.d nginx

测试

至此,配置就完成了。
通过192.168.0.113:1111/nacos/#/login访问成功~

新建工程 在application.yml中配置

#其余无关配置省略
spring:
	cloud:
		nacos:
			discovery:
				server-addr: 192.168.0.113:1111

这个配置客户端报错 但nacos后台可以看见注册的实例 也可以拿到nacos上的配置信息…

failed to req API:/nacos/v1/ns/instance after all servers([192.168.0.113:1111]) tried: 
failed to req API:192.168.0.113:1111/nacos/v1/ns/instance. code:500 msg: 
java.net.SocketTimeoutException: Read timed out

究其原因 再研究研究把

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值