mysql安装与基本操作
1) 拉取mysql
docker pull mysql:8.0.27
2) 定义挂载目录
mkdir -p /home/mysql/{conf,data}
3) 配置my.cnf(windows中是my.ini)
这里步骤省略
4) 开启mysql容器(bridge)
docker run -it \
-p 2333:3306 \
--name mysql \
-v /home/mysql/conf/my.cnf:/etc/my.cnf \
-v /home/mysql/data:/var/lib/mysql \
--privileged=true \
--restart=always \
-e MYSQL_ROOT_PASSWORD=root123 \
-d mysql:8.0.27 ?
5) 进入容器
docker exec -it mysql bash
6) 登录mysql
mysql -uroot -p
7) 查看user表
select host,user,authentication_string,plugin from user;?
8) 查看root权限
SHOW GRANTS FOR 'root'@'%';
?9) nacos数据库配置
这里用的Idea连接(navicat无法连接):
连接成功后 新建架构 运行nacos-mysql.sql脚本
nacos服务部署1.拉取镜像
docker pull nacos/nacos-server
2.启动nacos(设置启动参数)
docker run -it \
-e PREFER_HOST_MODE=ip \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.17.0.2 \
-e MYSQL_SERIVCE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e?MYSQL_SERVICE_PASSWORD=root123 \
-p 9901:8848 \
--name nacos \
--restart=always nacos/nacos-server
注:如果出现 No Datasource Set
? (1)检查ip是否对应
? (2)是否在同一网段下
? (3)检查数据库名称是否对应
? (4)检查用户名与密码
? (5)检查数据库中是否存在对应的表(是否执行脚本)
3.进行nacos数据持久化测试
浏览器访问 192.168.23.131:9901 登录nacos 新建配置text.yml
?
4.在控制台获得nacos配置
curl -X?GET "http://ip:8848/nacos/v1/cs/configs?dataId=xx.yml&group=DEFAULT_GROUP"
如图:
?
数据库中config_info表也会有一条数据
?
nacos集群搭建基于自定义网络:可以自定义ip
删除之前的容器
docker rm -f $(docker ps -aq)
重新开启mysql容器(默认的bridge网桥无法指定固定的ip,则会导致mysql服务的ip不固定,最好配置为自定义网络)
docker run -it \
-p 2333:3306 \
--name mysql \
--net mynet \
--ip 172.18.1.30 \
-v /home/mysql/conf/my.cnf:/etc/my.cnf \
-v /home/mysql/data:/var/lib/mysql \
--privileged=true \
--restart=always \
-e MYSQL_ROOT_PASSWORD=root123 \
-d mysql:8.0.27
开启nacos容器
1)
docker run -it \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.18.1.42:8848 172.18.1.43:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.18.1.30 \
-e MYSQL_SERIVCE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root123 \
-p 9901:8848?--name nacos01 \
--net mynet --ip 172.18.1.41 \
--restart=always nacos/nacos-server
?2)
docker run -it \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.18.1.41:8848 172.18.1.43:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.18.1.30 \
-e MYSQL_SERIVCE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root123 \
-p 9902:8848?--name nacos02?\
--net mynet --ip 172.18.1.42?\
--restart=always nacos/nacos-server
?3)
docker run -it \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.18.1.41:8848 172.18.1.42:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.18.1.30 \
-e MYSQL_SERIVCE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root123 \
-p 9903:8848?--name nacos03?\
--net mynet --ip 172.18.1.43?\
--restart=always nacos/nacos-server
浏览器访问查看是否成功访问?
怎么看集群是否搭建成功?点击集群管理-->节点列表
?集群搭建成功~ 但是这三个不互通,接下来
|
|
v
反向代理(负载均衡)开启nginx容器
docker run -itd \
--name nginx \
--net mynet \
-v /home/nginx/conf.d:/etc/nginx/conf.d \
-v /home/nginx/html:/etc/nginx/html \
-v /home/nginx/log:/etc/log/nginx \
-p 8080:80 nginx
在/home/nginx/conf.d/default.conf中配置:
upstream nacosList {? ? ? server 172.18.1.41:8848 weight=1; ? ? server 172.18.1.42:8848 weight=2; ? ? server 172.18.1.43:8848 weight=2; }
location /nacos { ? ? ? ? proxy_pass ?http://nacosList; }
?重读配置文件
nacos -s reload
nacos集群部署OK~?
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。 |
标签: #docker部署nacos集群