1、查询nacos镜像
docker search nacos
2、拉取nacos镜像
docker pull nacos/nacos-server
3、为原有Mysql容器再连接一个网络
docker network create --subnet=172.20.0.1/16 my_net
docker network connect my_net mysql
4、启动nacos1容器,使用mysql作为数据源
docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.20.0.102:18848 172.20.0.103:28848" \ [集群节点]
-e SPRING_DATASOURCE_PLATFORM=mysql \ [mysql数据源]
-e MYSQL_SERVICE_HOST=172.17.0.4 \ [mysql容器部署网段]
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \ [nacos数据库名称]
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-p 8848:8848 \ [映射端口]
-p 9848:9848 \
-p 9849:9849 \
--name nacos1 \
--net my_net \
--ip 172.20.0.101 \
--restart=always nacos/nacos-server
查看mysql容器部署网段:
docker inspect mysql
5、 查看nacos1启动日志
docker logs nacos1
若出现如下错误则修改conf/application.properties中的部分配置
docker exec -it nacos1 /bin/bash
cd conf
vi application.properties
6、退出重启nacos1
docker restart nacos1
7、同样方法启动nacos2、nacos3容器(注意修改application.properties中端口号)
docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.20.0.101:8848 172.20.0.103:28848" \ [集群节点]
-e SPRING_DATASOURCE_PLATFORM=mysql \ [mysql数据源]
-e MYSQL_SERVICE_HOST=172.17.0.4 \ [mysql容器部署网段]
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \ [nacos数据库名称]
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-p 18848:8848 \ [映射端口]
-p 19848:9848 \
-p 19849:9849 \
--name nacos2 \
--net my_net \
--ip 172.20.0.102 \
--restart=always nacos/nacos-server
docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.20.0.101:8848 172.20.0.102:18848" \ [集群节点]
-e SPRING_DATASOURCE_PLATFORM=mysql \ [mysql数据源]
-e MYSQL_SERVICE_HOST=172.17.0.4 \ [mysql容器部署网段]
-e MYSQL_SERVICE_PORT=3306
-e MYSQL_SERVICE_DB_NAME=nacos_config \ [nacos数据库名称]
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-p 28848:8848 \ [映射端口]
-p 29848:9848 \
-p 29849:9849 \
--name nacos3 \
--net my_net \
--ip 172.20.0.103 \
--restart=always nacos/nacos-server
虽然我们的三台nacos搭建完成了,但是我们只有一个或者两个容器能运行,所以要完成多台同时运行,还是要借助nginx实现负载均衡。
8、Nginx实现负载均衡
mkdir -p nginx/conf
新建default.conf 配置文件放在conf目录中
tream nacosList {
server nacos1:8848 weight=1;
server nacos2:18848 weight=1;
server nacos3:28848 weight=1;
}
server {
listen 80;
server_name www.liuniannacos.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 /nacos {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://tomcatList;
proxy_redirect default;
}
}
9、 创建nginx容器
docker run -itd \
--name nginx \
-v /soft/nginx/conf:/etc/nginx/conf \
-p 80:80 \
--net my_net \
nginx
10、修改要映射的域名
本机的C:\Windows\System32\drivers\etc目录下输入虚拟机IP以及域名
当我们创建并运行完nginx容器后利用可以使用自定义域名访问到说明我们的域名映射和nginx容器已完成