【docker】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、下载docker-ce源:
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

2、安装docker-ce
yum install docker-ce -y

3、启动docker和配置开机启动
systemctl start docker.service // 启动docker
systemctl enable docker.service // 配置开机启动

4、查看版本检测是否安装成功
docker version

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

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

 docker安装mysql主从

1、拉取镜像
sudo docker pull mysql:8.0.24

2、在宿主机创建主从目录
mkdir -p /opt/docker_mysql/mysql-first/data
mkdir -p /opt/docker_mysql/mysql-first/conf  
mkdir -p /opt/docker_mysql/mysql-first/logs

mkdir -p /opt/docker_mysql/mysql-second/data
mkdir -p /opt/docker_mysql/mysql-second/conf  
mkdir -p /opt/docker_mysql/mysql-second/logs    

3、先启动一个镜像,使用下面的命令把my.cnf复制出来保存在上面两个目录下的conf目录下面
docker cp 容器id:/etc/mysql/my.cnf 宿主机目录 


4、docker安装mysql集群节点1启动命令:
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

5、docker安装mysql集群节点2启动命令:
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配置文件

####修改mysql_first下的my.cnf,添加以下内容

server-id=100
log-bin=master-bin #开启二进制文件
binlog-ignore-db=information_schema    #不同步的二进制数据库名,如果不设置可以将其注释掉;
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys



-------------------------------------------------------------------------------------------
###修改mysql_second下的my.cnf,添加以下内容

## 设置server_id,注意要唯一
server-id=101  
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=slave-bin   
## relay_log配置中继日志
relay_log=/var/lib/mysql/relay.log  
read_only=1  ## 设置为只读,该项如果不设置,表示slave可读可写

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

进入mysql主数据库容器命令

#进入容器命令
docker exec -it 容器id bin/bash

#连接mysql命令
mysql -u root -p root666

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

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

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

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

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

#注意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、拉取nacos镜像
docker pull nacos/nacos-server:v2.1.2

2、创建三个nacos容器节点

3、安装启动第一个nacos容器
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

4、安装启动第二个nacos容器
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

5、安装启动第三个nacos容器
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、拉取nginx镜像
docker pull nginx:1.22

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

代理内容如下:

user  nginx;
worker_processes  auto;

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


events {
    worker_connections  1024;
}



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;

     upstream nacos_services {
        server 172.19.0.21:8848;
        server 172.19.0.22:8848;
        server 172.19.0.23:8848;
     }

     server {
        listen 80;
        server_name localhost;

        location /nacos {
                proxy_set_header Host $host;
                proxy_pass http://nacos_services;
           }
     }
    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

创建并启动nginx容器

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

#记得把上面nginx.conf文件复复制宿主机,上面命令进行挂载

最后访问nginx的地址

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

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,以下是一个示例的 `docker-compose.yaml` 文件,用于安装 NginxNacosMySQL: ```yaml version: '3' services: nginx: image: nginx:latest ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf nacos: image: nacos/nacos-server:latest ports: - "8848:8848" environment: - PREFER_HOST_MODE=hostname - SPRING_DATASOURCE_PLATFORM=mysql - MYSQL_SERVICE_HOST=mysql - MYSQL_SERVICE_PORT=3306 - MYSQL_SERVICE_DB_NAME=nacos - MYSQL_SERVICE_USER=nacos - MYSQL_SERVICE_PASSWORD=nacos depends_on: - mysql mysql: image: mysql:latest ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD=password - MYSQL_DATABASE=nacos - MYSQL_USER=nacos - MYSQL_PASSWORD=nacos ``` 该文件定义了三个服务:NginxNacosMySQL。每个服务都有一个名称、一个镜像和一些配置选项。 Nginx 服务使用 `nginx:latest` 镜像,并将容器内的 80 端口映射到主机的 80 端口。此外,该服务使用了一个名为 `nginx.conf` 的配置文件,该文件必须与 `docker-compose.yaml` 文件位于同一目录下。 Nacos 服务使用 `nacos/nacos-server:latest` 镜像,并将容器内的 8848 端口映射到主机的 8848 端口。此外,该服务使用了一些环境变量来配置数据库连接信息,并依赖于 MySQL 服务。 MySQL 服务使用 `mysql:latest` 镜像,并将容器内的 3306 端口映射到主机的 3306 端口。此外,该服务使用了一些环境变量来配置数据库 root 用户的密码、数据库名称、用户名和密码。 你可以在同一目录下运行 `docker-compose up` 命令来启动这些服务。在服务启动后,你可以通过访问 `http://localhost:8848/nacos` 来访问 Nacos 控制台,并使用 MySQL 中的 `nacos` 数据库来保存配置信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿来小同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值