Docker部署nacos集群

环境

操作系统:CentOS7.9 x86_64

IP: 192.168.123.120

本文以安装nacos2.1为例。

 

安装Docker

https://www.chenxie.net/archives/2209.html

 

创建自定义网络

docker network create --subnet 172.19.0.0/16 nacos-net

 

启动容器

mysql

docker run -d --name mysqldb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.38

下载nacos初始化sql:

wget https://raw.githubusercontent.com/alibaba/nacos/develop/distribution/conf/nacos-mysql.sql

拷贝初始化sql文件到容器内:

docker cp /root/nacos-mysql.sql mysqldb:/tmp/

进入容器导入数据:

[root@localhost ~]# docker exec -it mysqldb /bin/bash
root@351af8bde3bc:/# mysql -uroot -p
mysql> create database nacos;
mysql> use nacos;
mysql> source /tmp/nacos-mysql.sql;
mysql> show tables;
+----------------------+
| Tables_in_nacos      |
+----------------------+
| config_info          |
| config_info_aggr     |
| config_info_beta     |
| config_info_tag      |
| config_tags_relation |
| group_capacity       |
| his_config_info      |
| permissions          |
| roles                |
| tenant_capacity      |
| tenant_info          |
| users                |
+----------------------+
12 rows in set (0.00 sec)

mysql> exit
Bye
root@af896bb47ae5:/# exit
exit

数据库连接信息为:

ip: 192.168.123.120

port: 3306

dbname: nacos

username: root

password: 123456

 

nacos1

docker run -d \
--network nacos-net --ip 172.19.0.11 --name nacos1 \
-e PREFER_HOST_MODE=hostname \
-e MODE=cluster \
-e NACOS_SERVERS="172.19.0.11:8848 172.19.0.12:8848 172.19.0.13:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.123.120 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e NACOS_SERVER_IP=172.19.0.11 \
-e JVM_XMS=256m -e JVM_XMX=512m \
-p 18848:8848 \
nacos/nacos-server:v2.1.0

 

nacos2

docker run -d \
--network nacos-net --ip 172.19.0.12 --name nacos2 \
-e PREFER_HOST_MODE=hostname \
-e MODE=cluster \
-e NACOS_SERVERS="172.19.0.11:8848 172.19.0.12:8848 172.19.0.13:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.123.120 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e NACOS_SERVER_IP=172.19.0.12 \
-e JVM_XMS=256m -e JVM_XMX=512m \
-p 28848:8848 \
nacos/nacos-server:v2.1.0

 

nacos3

docker run -d \
--network nacos-net --ip 172.19.0.13 --name nacos3 \
-e PREFER_HOST_MODE=hostname \
-e MODE=cluster \
-e NACOS_SERVERS="172.19.0.11:8848 172.19.0.12:8848 172.19.0.13:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.123.120 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e NACOS_SERVER_IP=172.19.0.13 \
-e JVM_XMS=256m -e JVM_XMX=512m \
-p 38848:8848 \
nacos/nacos-server:v2.1.0

访问地址:

http://192.168.123.120:18848/nacos/

http://192.168.123.120:28848/nacos/

http://192.168.123.120:38848/nacos/

初始用户名:nacos

初始密码:nacos

 

nginx

创建本地目录:

mkdir -p /data/nginx/conf/
mkdir -p /data/nginx/logs

启动临时nginx容器,用于拷贝配置文件到本地:

docker run -d --name nginx_temp nginx

拷贝配置文件:

docker cp nginx_temp:/etc/nginx/conf.d /data/nginx/conf/

删除临时nginx容器:

docker rm -f nginx_temp

修改配置文件:

cat /data/nginx/conf/conf.d/default.conf

upstream nacos-server-cluster {
    server  192.168.123.120:18848;
    server  192.168.123.120:28848;
    server  192.168.123.120:38848;
}

server {
    listen       80;
    server_name  localhost;

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

    location / {
        proxy_pass http://nacos-server-cluster;
    }
}

启动正式nginx容器:

docker run -d --name nginx -p 80:80 \
-v /data/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /data/nginx/logs:/var/log/nginx \
nginx

访问地址:

http://192.168.123.120/nacos

初始用户名:nacos

初始密码:nacos

版权声明:
作者:admin
链接:https://www.chenxie.net/archives/2679.html
来源:蜀小陈
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录