docker-compose安装Nacos集群(保姆级教学)

一、前置

 

1、Linux已安装docker

Linux安装docker教程icon-default.png?t=M85Bhttp://t.csdn.cn/ujzoA

2、Nacos持久化数据库

docker安装mysql教程icon-default.png?t=M85Bhttp://t.csdn.cn/AnWZ1

3、安装docker-compose环境

二、准备工作

1、创建目录

mkdir -p /home/nacos

 2、编写配置文件

# 编写nginx.conf实现负载均衡

# 进入nacos目录
cd /home/nacos

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

# 编写nginx.conf内容
vi 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;
    # 添加负载均衡配置,替换自己的IP 或填写nacos容器名
    upstream nacos {
        server 127.0.0.1:8846 weight=1 max_fails=2 fail_timeout=10s;
        server 127.0.0.1:8847 weight=1 max_fails=2 fail_timeout=10s;
        server 127.0.0.1:8848 weight=1 max_fails=2 fail_timeout=10s;
    }

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

        # 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;
        }
    }
}
# 编写docker-compose.yml 创建Nacos集群

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

# 创建相关映射目录
#映射nacos配置
mkdir init.d
#映射日志文件
mkdir /cluster-logs/nacos1
mkdir /cluster-logs/nacos2
mkdir /cluster-logs/nacos2

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

# 编写docker-compose.yaml
vi docker-compose.yaml

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=127.0.0.1
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=123456
      - 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:
      - 8846:8848
      - 9848:9848
      - 9555:9555

  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=127.0.0.1
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=123456
      - MYSQL_SERVICE_DB_NAME=nacos_config
      - JVM_XMS=128m
      - JVM_XMX=128m
      - JVM_XMN=128m
    volumes:
      - ./cluster-logs/nacos2:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - 8847:8848
      - 9849:9848

  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=127.0.0.1
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=123456
      - MYSQL_SERVICE_DB_NAME=nacos_config
      - JVM_XMS=128m
      - JVM_XMX=128m
      - JVM_XMN=128m
    volumes:
      - ./cluster-logs/nacos3:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - 8848:8848
      - 9850:9848

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

3、编排docker-compose

# 根据docker-compose.yml 创建nacos集群
docker-compose up -d

#显示编排容器
docker-compose ps

三、验证

输入地址:http://{ip地址}:8845/nacos

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值