docker-compose部署Nacos集群

1、前置准备:docker、nacos的数据库

2、创建nacos目录

mkdir -p /apps/nacos

3、切换到nacos目录下,创建并写nginx.conf配置文件

# 切换到nacos目录
cd /apps/nacos

# 创建nginx配置文件
touch nginx.conf

# 写nginx.conf文件信息
vim nginx.conf

以下为nginx.conf内容
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  4096;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    keepalive_timeout  65;

    # include /etc/nginx/conf.d/*.conf;
    # 添加负载均衡配置

    upstream nacos {
        server nacos-server01:8846 weight=1 max_fails=2 fail_timeout=10s;
        server nacos-server02:8847 weight=1 max_fails=2 fail_timeout=10s;
        server nacos-server03:8848 weight=1 max_fails=2 fail_timeout=10s;
    }

    server {
        listen       80;
        listen  [::]:80;
        # 修改为宿主机的 IP地址
        server_name  10.1.125.145;

        # To allow special characters in headers
        ignore_invalid_headers off;
        # Allow any size file to be uploaded.
        # Set to a value such as 1000m; to restrict file size to a specific value
        client_max_body_size 0;
        # To disable buffering
        proxy_buffering off;
        proxy_request_buffering off;

        location / {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

            proxy_connect_timeout 300;
            # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
            proxy_http_version 1.1;
            proxy_set_header Connection "";
            chunked_transfer_encoding off;
            # 添加代理配置

            proxy_pass http://nacos;
        }
    }
}

4、创建并写docker-compose.yaml配置文件

# 切换到nacos目录
cd /apps/nacos

# 创建docker-compose.yaml文件
touch docker-compose.yaml

# 写docker-compose.yaml文件信息
vim docker-compose.yaml

# 以下为docker-compose.yaml内容,注意MYSQL_SERVICE_*相关为数据库配置,nacos-nginx的volumes为挂载读取同目录下的nginx.conf配置
version: "3"

services: 
    nacos1:
        container_name: nacos-server01
        hostname: nacos-server01
        image: nacos/nacos-server:2.0.3
        environment: 
            - MODE=cluster
            - PREFER_HOST_MODE=hostname
            - NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
            - SPRING_DATASOURCE_PLATFORM=mysql
            - MYSQL_SERVICE_HOST=Mysql的Ip
            - MYSQL_SERVICE_PORT=端口
            - MYSQL_SERVICE_USER=用户
            - MYSQL_SERVICE_PASSWORD=密码
            - MYSQL_SERVICE_DB_NAME=nacos_config nacos数据库
            - JVM_XMS=128m
            - JVM_XMX=128m
            - JVM_XMN=128m
        volumes: 
            - ./cluster-logs/nacos1:/home/nacos/logs
            - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
        ports: 
            - 8846:8848
            - 9848:9848
            - 9555:9555
        restart: on-failure

    nacos2:
        container_name: nacos-server02
        hostname: nacos-server02
        image: nacos/nacos-server:2.0.3
        environment: 
            - MODE=cluster
            - PREFER_HOST_MODE=hostname
            - NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
            - SPRING_DATASOURCE_PLATFORM=mysql
            - MYSQL_SERVICE_HOST=192.168.120.253
            - MYSQL_SERVICE_PORT=3306
            - MYSQL_SERVICE_USER=root
            - MYSQL_SERVICE_PASSWORD=root
            - MYSQL_SERVICE_DB_NAME=nacos_config
            - JVM_XMS=128m
            - JVM_XMX=128m
            - JVM_XMN=128m
        volumes: 
            - ./cluster-logs/nacos1:/home/nacos/logs
            - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
        ports: 
            - 8847:8848
            - 9849:9848
        restart: on-failure

    nacos3:
        container_name: nacos-server03
        hostname: nacos-server03
        image: nacos/nacos-server:2.0.3
        environment: 
            - MODE=cluster
            - PREFER_HOST_MODE=hostname
            - NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
            - SPRING_DATASOURCE_PLATFORM=mysql
            - MYSQL_SERVICE_HOST=192.168.120.253
            - MYSQL_SERVICE_PORT=3306
            - MYSQL_SERVICE_USER=root
            - MYSQL_SERVICE_PASSWORD=root
            - MYSQL_SERVICE_DB_NAME=nacos_config
            - JVM_XMS=128m
            - JVM_XMX=128m
            - JVM_XMN=128m
        volumes: 
            - ./cluster-logs/nacos1:/home/nacos/logs
            - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
        ports: 
            - 8848:8848
            - 9850:9848
        restart: on-failure

    nacos-nginx: 
        container_name: nacos-nginx
        image: nginx:1.21.1
        volumes: 
            - ./nginx.conf:/etc/nginx/nginx.conf:ro
        ports: 
            - 8845:80
        restart: on-failure 
        

5、编排docker-compose.yaml

请添加图片描述

# 编排docker-compose.yaml
# docker-compose -f <编排文件路径> up -d
docker-compose -f docker-compose.yaml up -d

 # 查看运行情况
docker ps -n 5

在这里插入图片描述

6、地址:http:{ip}:8845/nacos 账号密码都为nacos

在这里插入图片描述

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值