• docker安装nginx代理nacos2.1.2版本集群


    目录

    安装docker最新版本

    创建一个docker network,使之固定docker局域ip

     docker安装mysql主从

     配置挂载的my.cnf配置文件

    进入mysql主数据库容器命令

    登录主数据库创建用于从数据连接主数据的账号密码 

    输入show master status;查看master数据库状态

    在从数据库使用start slave;

    搭建nacos集群

    安装nginx代理nacos

    在宿主机挂载nginx的配置文件nginx.conf

    创建并启动nginx容器

    最后访问nginx的地址


    安装docker最新版本

    1. 1、下载docker-ce源:
    2. curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
    3. 2、安装docker-ce
    4. yum install docker-ce -y
    5. 3、启动docker和配置开机启动
    6. systemctl start docker.service // 启动docker
    7. systemctl enable docker.service // 配置开机启动
    8. 4、查看版本检测是否安装成功
    9. docker version

    创建一个docker network,使之以下docker容器都固定docker局域ip

    docker network create --subnet=172.19.0.0/16 -d bridge mynet

     docker安装mysql主从

    1. 1、拉取镜像
    2. sudo docker pull mysql:8.0.24
    3. 2、在宿主机创建主从目录
    4. mkdir -p /opt/docker_mysql/mysql-first/data
    5. mkdir -p /opt/docker_mysql/mysql-first/conf
    6. mkdir -p /opt/docker_mysql/mysql-first/logs
    7. mkdir -p /opt/docker_mysql/mysql-second/data
    8. mkdir -p /opt/docker_mysql/mysql-second/conf
    9. mkdir -p /opt/docker_mysql/mysql-second/logs
    10. 3、先启动一个镜像,使用下面的命令把my.cnf复制出来保存在上面两个目录下的conf目录下面
    11. docker cp 容器id:/etc/mysql/my.cnf 宿主机目录
    12. 4、docker安装mysql集群节点1启动命令:
    13. sudo docker run -itd --net mynet --ip 172.19.0.11 --name mysql_first --restart=always -v $PWD/mysql-first/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/mysql-first/data:/var/lib/mysql -v $PWD/mysql-first/logs:/logs -e MYSQL_ROOT_PASSWORD=root666 -p 13301:3306 mysql:8.0.24
    14. 5、docker安装mysql集群节点2启动命令:
    15. sudo docker run -itd --net mynet --ip 172.19.0.12 --name mysql_second --restart=always -v $PWD/mysql-second/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/mysql-second/data:/var/lib/mysql -v $PWD/mysql-second/logs:/logs -e MYSQL_ROOT_PASSWORD=root666 -p 13302:3306 mysql:8.0.24

     配置挂载的my.cnf配置文件

    1. ####修改mysql_first下的my.cnf,添加以下内容
    2. server-id=100
    3. log-bin=master-bin #开启二进制文件
    4. binlog-ignore-db=information_schema #不同步的二进制数据库名,如果不设置可以将其注释掉;
    5. binlog-ignore-db=mysql
    6. binlog-ignore-db=performance_schema
    7. binlog-ignore-db=sys
    8. -------------------------------------------------------------------------------------------
    9. ###修改mysql_second下的my.cnf,添加以下内容
    10. ## 设置server_id,注意要唯一
    11. server-id=101
    12. ## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
    13. log-bin=slave-bin
    14. ## relay_log配置中继日志
    15. relay_log=/var/lib/mysql/relay.log
    16. read_only=1 ## 设置为只读,该项如果不设置,表示slave可读可写

    修改配置文件后记得重启mysql的主从容器

    进入mysql主数据库容器命令

    1. #进入容器命令
    2. docker exec -it 容器id bin/bash
    3. #连接mysql命令
    4. mysql -u root -p root666

    登录主数据库创建用于从数据连接主数据的账号密码 

    1. CREATE USER 'second'@'%' IDENTIFIED WITH mysql_native_password BY 'second';
    2. GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'second'@'%';

    输入show master status;查看master数据库状态

    然后在同样上面进入从数据 执行下面的命令开启主从复制

    1. change master to master_host='172.19.0.11',master_user='second',master_password='second',master_port=3306,master_log_file='master-bin.000001',master_log_pos=683,master_connect_retry=30
    2. #注意master_log_file和master_log_pos的值需要对应到主数据库show master status查询出来的值

    在从数据库使用start slave;

    开启主从同步

    下载nacos的2.1.2的数据库脚本在主数据库创建库nacos_config,执行sql脚本初始化数据

    https://github.com/alibaba/nacos

    搭建nacos集群

    1. 1、拉取nacos镜像
    2. docker pull nacos/nacos-server:v2.1.2
    3. 2、创建三个nacos容器节点
    4. 3、安装启动第一个nacos容器
    5. sudo docker run -itd --name nacos_01 --net mynet --ip 172.19.0.21 --restart=always -e PREFER_HOST_MODE=ip -e MODE=cluster -e NACOS_SERVERS="172.19.0.22:8848 172.19.0.23:8848" -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=172.19.0.11 -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_DB_NAME=nacos_config -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=root666 -e MYSQL_SLAVE_SERVICE_HOST=172.19.0.12 -e MYSQL_SLAVE_SERVICE_PORT=3306 -e MYSQL_DATABASE_NUM=2 -e JVM_XMS=256m -e JVM_XMX=512m -e JVM_XMN=256m -p 18801:8848 nacos/nacos-server:v2.1.2
    6. 4、安装启动第二个nacos容器
    7. sudo docker run -itd --name nacos_02 --net mynet --ip 172.19.0.22 --restart=always -e PREFER_HOST_MODE=ip -e MODE=cluster -e NACOS_SERVERS="172.19.0.21:8848 172.19.0.23:8848" -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=172.19.0.11 -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_DB_NAME=nacos_config -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=root666 -e MYSQL_SLAVE_SERVICE_HOST=172.19.0.12 -e MYSQL_SLAVE_SERVICE_PORT=3306 -e MYSQL_DATABASE_NUM=2 -e JVM_XMS=256m -e JVM_XMX=512m -e JVM_XMN=256m -p 18802:8848 nacos/nacos-server:v2.1.2
    8. 5、安装启动第三个nacos容器
    9. sudo docker run -itd --name nacos_03 --net mynet --ip 172.19.0.23 --restart=always -e PREFER_HOST_MODE=ip -e MODE=cluster -e NACOS_SERVERS="172.19.0.21:8848 172.19.0.22:8848" -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=172.19.0.11 -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_DB_NAME=nacos_config -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=root666 -e MYSQL_SLAVE_SERVICE_HOST=172.19.0.12 -e MYSQL_SLAVE_SERVICE_PORT=3306 -e MYSQL_DATABASE_NUM=2 -e JVM_XMS=256m -e JVM_XMX=512m -e JVM_XMN=256m -p 18803:8848 nacos/nacos-server:v2.1.2

    安装nginx代理nacos

    1. 1、拉取nginx镜像
    2. docker pull nginx:1.22

    在宿主机挂载nginx的配置文件nginx.conf

    代理内容如下:

    1. user nginx;
    2. worker_processes auto;
    3. error_log /var/log/nginx/error.log notice;
    4. pid /var/run/nginx.pid;
    5. events {
    6. worker_connections 1024;
    7. }
    8. http {
    9. include /etc/nginx/mime.types;
    10. default_type application/octet-stream;
    11. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    12. '$status $body_bytes_sent "$http_referer" '
    13. '"$http_user_agent" "$http_x_forwarded_for"';
    14. access_log /var/log/nginx/access.log main;
    15. upstream nacos_services {
    16. server 172.19.0.21:8848;
    17. server 172.19.0.22:8848;
    18. server 172.19.0.23:8848;
    19. }
    20. server {
    21. listen 80;
    22. server_name localhost;
    23. location /nacos {
    24. proxy_set_header Host $host;
    25. proxy_pass http://nacos_services;
    26. }
    27. }
    28. sendfile on;
    29. #tcp_nopush on;
    30. keepalive_timeout 65;
    31. #gzip on;
    32. include /etc/nginx/conf.d/*.conf;
    33. }

    创建并启动nginx容器

    1. sudo docker run -itd --restart=always --name nginx_01 --net mynet --ip 172.19.0.80 -v $PWD/nginx.conf:/etc/nginx/nginx.conf -p 18848:80 nginx:1.22
    2. #记得把上面nginx.conf文件复复制宿主机,上面命令进行挂载

    最后访问nginx的地址

    http://你的ip:18848/nacos/

  • 相关阅读:
    QGIS提取两条线元素的交点
    微信小程序开发-----发起网络请求携带后端token
    【Java面试】如何理解Spring Boot中的Starter?
    靠这份业界最强算法及数据结构宝典,我挺进字节跳动
    [探索深度学习] 之 神经网络 - 笔记01
    arcgis地形分析全流程
    元年洞察|如何打造企业数据能力组件中心
    阻塞队列和定时器的使用
    QT程序打包
    学习JAVA的第七天(基础)
  • 原文地址:https://blog.csdn.net/skybboy/article/details/128204685