一、mysql安装与基操
拉取mysql
docker pull mysql:8.0.27
定义挂载目录
mkdir -p /home/mysql/{conf,data}
配置my.cnf(window中是my.ini)
开启mysql容器(bridge)
docker run -itd -p 2333:3306 --name mysql \
> -v /home/mysql/conf/my.cnf:/etc/my.cnf \
> -v /home/mysql/data:/var/lib/mysql \
> -v --privileged=true --restart=always -e MYSQL_ROOT_PASSWORD=root123 -d mysql:8.0.27
进入mysql
docker exec -it mysql bash
mysql -u root -p
进入nacos数据库查看表
use nacos
show tables;
select * from users;
二.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_SERVICE_PORT=3306 \
> -e MYSQL_SERVICE_DB_NAME=nacos \
> -e MYSQL_SERVICE_USER=root \
> -e MYSQL_SERVICE_PASSWORD=123456 \
> -p 9901:8848 \
> --name nacos \
> --restart=always \
> nacos/nacos-server
这个界面是正常的,因为nacos的路径为/nacos
进入新增一个配置
写这个的目的:查看持久化是否生效
三.集群搭建
在控制台获得nacos配置
curl -X GET "http://172.17.0.3:8848/nacos/v1/cs/configs?dataId=test.yml&group=DEFAULT_GROUP"
因为之前我们刚搭上的单机的nacos ,得删掉
docker rm -f $(docker ps -aq)
2.开启mynet容器
docker run -itd -p 2333:3306 \
> --name 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=123456 \
> -d mysql:8.0.27
3.新建nacos服务
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_SERVICE_PORT=3306 -e MYSQL_SERVICE_DB_NAME=nacos -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -p 9901:8848 --name nacos01 --net mynent --ip 172.18.1.41 --restart=always nacos/nacos-server
出现这个则代表运行成功。
docker run -itd -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_SERVICE_PORT=3306 -e MYSQL_SERVICE_DB_NAME=nacos -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -p 9902:8848 --name nacos02 --net mynet --ip 172.18.1.42 --restart=always nacos/nacos-server
docker run -itd -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_SERVICE_PORT=3306 -e MYSQL_SERVICE_DB_NAME=nacos -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -p 9903:8848 --name nacos03 --net mynet --ip 172.18.1.43 --restart=always nacos/nacos-server
进入对应目录修改default文件
cd /home/nginx/conf.d/
#服务器的集群
upstream tomcatList { #服务器集群名字
server 172.17.0.5:8081 weight=1; #服务器1 weight是权重的意思,权重越大,分配的概率越大
server 172.17.0.3:8081 weight=2; #服务器2 weight是权重的意思,权重越大,分配的概率越大
server 172.17.0.4:8081 weight=2; #服务器3 weight是权重的意思,权重越大,分配的概率越大
}
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;
}
server {
listen 80;
server_name www.zking.com;
location / {
root /etc/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /nacos {
proxy_pass http://nacosList;
}
location ^~/api/ {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://tomcatList;
proxy_redirect default;
}
}
开启nginx
docker run -itd --name nginx01 -v /home/nginx/conf.d:/etc/nginx/conf.d -v /home/nginx/html:/etc/nginx/html -v /home/nginx/log:/usr/log/nginx -p 8081:80 nginx
双网绑定
docker network connect mynet nginx