日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

docker nacos mysql nginx 集群多台

發布時間:2024/9/27 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker nacos mysql nginx 集群多台 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


文章目錄

            • 服務器編排
          • 一、mysql
            • 1. 創建掛載目錄
            • 2. 賦予權限
            • 3. 運行容器
            • 4. 創建數據庫
            • 5. 初始化腳本
          • 二、nacos-cluster
            • 2.1. 192.168.92.129
            • 2.2. 192.168.92.132
            • 2.3. 192.168.92.133
          • 三、nginx
            • 3.1. 運行臨時容器
            • 3.2. 配置拷貝
            • 3.3. 刪除臨時容器
            • 3.4. 添加配置
            • 3.5. 運行容器
          • 四、驗證和實戰
            • 4.1. nacos控制臺
            • 4.2. nginx驗證
            • 4.3. 項目配置

服務器編排
ip端口用途
192.168.92.1298848nacos-cluster01
192.168.92.1293306mysql
192.168.92.12980nginx
192.168.92.1328848nacos-cluster02
192.168.92.1338848nacos-cluster03
一、mysql
1. 創建掛載目錄
mkdir -p /app/mysql/data mkdir -p /app/mysql/conf mkdir -p /app/mysql/sql
2. 賦予權限
chmod -R 777 /app/mysql/
3. 運行容器
  • mysql5.7
docker run --name mysql5.7 -d \ -p 3306:3306 \ -v /app/mysql/conf:/etc/my.cnf.d \ -v /app/mysql/logs:/logs \ -v /app/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ --restart always \ --privileged=true \ mysql:5.7
  • mysql5.8
    創建方式有很多種,請參考以下博客,任選其中一種即可
    docker mysql:8.0.27
4. 創建數據庫

創建nacos_config,

5. 初始化腳本

數據庫初始化腳本:
https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql

二、nacos-cluster
  • 192.168.92.129節點
2.1. 192.168.92.129
docker run -d \ -e MODE=cluster \ -e NACOS_APPLICATION_PORT=8848 \ -e NACOS_SERVERS=192.168.92.129:8848,192.168.92.132:8848,192.168.92.133:8848 \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=192.168.92.129 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ -e MYSQL_SERVICE_DB_NAME=nacos_config \ -e NACOS_SERVER_IP=192.168.92.129 \ -p 8848:8848 \ --name nacos-cluster8848 \ --restart always \ nacos/nacos-server:1.4.2
  • 192.168.92.132節點
2.2. 192.168.92.132
  • 192.168.92.132節點
docker run -d \ -e MODE=cluster \ -e NACOS_APPLICATION_PORT=8848 \ -e NACOS_SERVERS=192.168.92.129:8848,192.168.92.132:8848,192.168.92.133:8848 \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=192.168.92.129 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ -e MYSQL_SERVICE_DB_NAME=nacos_config \ -e NACOS_SERVER_IP=192.168.92.132 \ -p 8848:8848 \ --name nacos-cluster8848 \ --restart always \ nacos/nacos-server:1.4.2
2.3. 192.168.92.133
  • 192.168.92.133節點
docker run -d \ -e MODE=cluster \ -e NACOS_APPLICATION_PORT=8848 \ -e NACOS_SERVERS=192.168.92.129:8848,192.168.92.132:8848,192.168.92.133:8848 \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=192.168.92.129 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ -e MYSQL_SERVICE_DB_NAME=nacos_config \ -e NACOS_SERVER_IP=192.168.92.133 \ -p 8848:8848 \ --name nacos-cluster8848 \ --restart always \ nacos/nacos-server:1.4.2
  • 配置說明:
docker run -d \ # -d表示是后臺運行 -e MODE=cluster \ # 以集群模式運行 -e NACOS_APPLICATION_PORT=8846 \ # 這臺Nacos服務的port是8846 -e NACOS_SERVERS=192.168.92.129:8846,192.168.92.129:8847,192.168.92.129:8848 \ # Nacos集群的所有機器的信息 -e SPRING_DATASOURCE_PLATFORM=mysql \ # 使用外置MySQL存儲配置信息 -e MYSQL_SERVICE_HOST=192.168.92.129 \ # 外置MySQL的IP -e MYSQL_SERVICE_PORT=3306 \ # 外置MySQL的port -e MYSQL_SERVICE_USER=root \ # 外置MySQL的用戶名 -e MYSQL_SERVICE_PASSWORD=123456 \ # 外置MySQL的密碼 -e MYSQL_SERVICE_DB_NAME=nacos_config \ # 外置MySQL的數據庫,也就是Nacos的配置文件要存儲得到哪個數據庫,這個在單機版Nacos使用外置數據庫時候介紹過 -e NACOS_SERVER_IP=192.168.92.129 \ # 這臺Nacos服務的IP -p 8846:8846 \ # 容器外部端口映射 --name nacos8846 \ # 給容器起個名字吧 --restart always \ #重啟docker 容器自動啟動 nacos/nacos-server:1.4.2 # 運行哪個鏡像

常見坑點:官網使用的是NACOS_SERVER_PORT,對于nacos/nacos-server:1.3.2鏡像,自定義Nacos端口號的時候,不要使用NACOS_SERVER_PORT,要使用NACOS_APPLICATION_PORT!因為conf/application.properties里寫了。

三、nginx

由Nginx進行轉發(nginx下部署了3臺Nacos集群)配置文件自行修改

  • 192.168.92.129節點
3.1. 運行臨時容器

-目的,為了復制nginx容器內部的配置文件

mkdir /app/nginx/conf/ /app/nginx/dist -p chmod 777 /app/nginx -R docker run \ -d \ --name nginx-tmp \ -p 80:80 \ nginx:1.21.4
3.2. 配置拷貝
docker cp nginx-tmp:/etc/nginx/conf.d/default.conf /app/nginx/conf/default.conf docker cp nginx-tmp:/usr/share/nginx/html/index.html /app/nginx/dist/index.html
3.3. 刪除臨時容器
docker rm -f nginx-tmp
3.4. 添加配置

在/app/nginx/conf/掛載目錄下新建 nacos.conf

cd /app/nginx/conf/ vim nacos.conf

添加以下內容:

upstream nacos {server 192.168.92.129:8848 weight=1 max_fails=2 fail_timeout=10s;server 192.168.92.132:8848 weight=1 max_fails=2 fail_timeout=10s;server 192.168.92.133:8848 weight=1 max_fails=2 fail_timeout=10s;}server{listen 80;server_name 192.168.92.129;location / {proxy_pass http://nacos;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header REMOTE-HOST $remote_addr;add_header X-Cache $upstream_cache_status;add_header Cache-Control no-cache;}}
3.5. 運行容器

這是在咱們生產真正的nginx容器

docker run \ -d \ --name nginx \ -p 80:80 \ -v /app/nginx/dist:/usr/share/nginx/html:ro \ -v /app/nginx/conf:/etc/nginx/conf.d \ --privileged=true \ --restart always \ nginx:1.21.4
四、驗證和實戰
4.1. nacos控制臺

http://192.168.92.129:8848/nacos
http://192.168.92.132:8848/nacos
http://192.168.92.133:8848/nacos


4.2. nginx驗證

這是nginx端口是80
http://192.168.92.129/nacos/

4.3. 項目配置
server:port: 8000 spring:cloud:nacos:discovery:service: order2-servserver-addr: 192.168.92.129:80

總結

以上是生活随笔為你收集整理的docker nacos mysql nginx 集群多台的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。