compose部署

发布时间:2024年01月15日

?

目录

?本章目标:

  1. 自定义网络
  2. 数据库

?正文:

注:创建两个网络mynet和mynetwork

1. 自定义网络-mynet

创建自定义网络:

docker network create --subnet=172.33.0.0/16 mynet

?查看网络信息

?docker network list

?查看指定网络的详细信息

?docker network inspect mynet

删除指定网络

docker network rm mynet

创建容器并测试自定义网络?

docker run -it --name t1 --net mynet \

? ? ? --ip 172.18.0.2 --restart=always centos:latest /bin/bash

向docker compose移植

?mkdir /docker-compose

?rz

注:请在docker-compose.yml文件所在目录去执行,不然将报错

?

?在新建的vim docker-compose.yml文件放入

version:"3"
services:
  test:
    images:centos
    networks:
      my_net:
        ipv4_address:172.33.0.100
    deploy:
      replicas:3
networks:
  my_net:
    driver:bridge
    ipam:
      config:
        - subnet:172.33.0.0/16
      

放好之后 我们运行一下

docker-compose up -d

主从的作用:

? ? ?实现数据的同步

? ? ?减轻数据库压力(读写分离)

主服务器上得有一个binlog日志文件

主服务器会将增加改的操作记录到binlog

从服务器·连接上主服务器的时候

主服务器将binlog 推送到从服务器

从服务器执行一遍binlog

?

部署mysql主从集群

在宿主机中创建相关目录,用于挂载容器的相关数据
???mkdir ?{conf,data,script}

再放入这个文件

在cd slave文件

mkdir ?{conf,data,script}

再放入这个文件

上传主数据库容器的配置文件my.cnf到/data/mysql-master/conf目录下
? ? $ cd /data/mysql-master/conf

注意:将mysql/mysql-master目录下的conf上传
? ? 把以下的主从复制到my.cnf文件里面

version:"3"
services:
  test:
    images:mysql/mysql-server:5.7
    networks:
      my_net:
         ipv4_address:172.18.0.0/16
  volumes:
   -/soft/mysql/master/conf/my.cnf:/etc/my.cnf
   -/soft/mysql/master/data:/var/lib/mysql
   -/soft/mysql/master/script:/script
  restart: on-failure
  privileged:true
 environment:
  MYSQL_ROOT_PASSWORD=123456
  networks:
    - my_net
  slave:
    image:mysql/mysql-server:5.7
    volumes:
      - /soft/mysql/slave/conf/my.cnf:/etc/my.cnf
      - /soft/mysql/slave/data:/script
      - /soft/mysql/slave/script
 restart: on-failure #也可以 使用--restart=always \一直
 privileged:true
environment:
  MYSQL_ROOT_PASSWORD=123456
networks:
  my_net:
    driver:bridge
    ipam:
      config:
        - subnet:172.18.0.0/16
      

然后: docker-compose up -d

docker-compose exec master bash #进入文件

再重新开一个窗口 先切换到所在文件的位置再去执行命令:

docker-compose exec master bash

登录:

mysql -uroot -p123456

再去查看:

show master status;

找到从服务器登录

mysql -uroot -p

复制到从服务器

? ? ? CHANGE MASTER TO MASTER_HOST='172.18.0.100', MASTER_PORT=3306, MASTER_USER='root',
? ? ? ? ? ? MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000005', MASTER_LOG_POS=154;

?开启服务:

start slave;

查看连接状态

show slave status\G;

在主服务器:

grant all on *.* to root@'%' identied by "123456";

? 查看

docker inspect soft_slavr_1

查看

docker inspect soft_master_1


文章来源:https://blog.csdn.net/fddggghrr/article/details/135608057
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。