一、Compose前言
Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,可以使用YAML文件来配置应用程序的服务。
文章来源地址https://uudwc.com/A/3w16O
二、自定义网络
1.定义自定义网络-mynet
实现思路:创建自定义网络,并以自定义网络创建容器,最后迁移到docker-compose中一键启动
1.1 创建自定义网络
$ docker network create --subnet=172.18.0.1/24 mynet
1.2 查看网络信息
$ docker network list
1.3 查看指定网络的详细信息
$ docker network inspect mynet
1.4 删除指定网络
$ docker network rm mynet
1.5 创建容器并测试自定义网络
$ docker run -it --name t1 --net mynet \
ip 172.18.0.2 --restart=always centos:latest /bin/bash
1.6 向docker compose移植
$ mkdir /docker-compose
$ rz
# 版本号
version: '3'
# 定义服务
services:
# 服务名
test:
# 容器名称
container_name: test
# 镜像
image: centos:latest
# 重启
restart: always
# 提供伪终端
tty: true
# 网络
networks:
mynetwork:
ipv4_address: 172.19.0.2
# 定义所需要的网络
networks:
mynetwork:
driver: bridge
ipam:
config:
- subnet: 172.19.0.0/16
7.后台启动服务
$ docker-compose up -d //启动
$ docker-compose stop //停止
$ docker-compose down //下线及停止+删除
请在docker-compose.yml文件所在目录去执行,不然将报错!
三、.部署mysql主从集群
1.mysql-master主库
1.1 在宿主机中创建相关目录,用于挂载容器的相关数据
$ mkdir -p /data/mysql-master/{conf,data}
1.2 上传主数据库容器的配置文件my.cnf到/data/mysql-master/conf目录下
$ cd /data/mysql-master/conf
$ rz
将课件mysql/mysql-master目录下的conf上传
1.3 启动master节点
$ docker run \
--name mysql-master \
--net mynet \
--ip 172.18.0.3 \
-v /data/mysql-master/conf/my.cnf:/etc/my.cnf \
-v /data/mysql-master/data:/var/lib/mysql \
--privileged=true \
--restart=always \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql/mysql-server:5.7
注1:-p 3306:3306 可以不要
注2:参数说明,请见附录四
1.4 删除mysql-master容器并向docker compose移植
$ docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
# 版本号
version: '3'
# 定义服务
services:
# 服务名
mysql-master:
# 容器名称
container_name: mysql-master
# 镜像
image: mysql/mysql-server:5.7
# 重启
restart: always
# 提供伪终端
tty: true
# root具备管理员权限
privileged: true
# 环境变量
environment:
MYSQL_ROOT_PASSWORD: 123456
# 数据卷(目录映射)
volumes:
- /data/mysql-master/conf/my.cnf:/etc/my.cnf
- /data/mysql-master/data:/var/lib/mysql
# 网络
networks:
mynetwork:
ipv4_address: 172.19.0.3
# 定义所需要的网络
networks:
mynetwork:
driver: bridge
ipam:
config:
- subnet: 172.19.0.0/16
1.5 进入主库容器配置远程连接
进入mysql容器
$ docker-compose exec --index=1 mysql-master /bin/sh
或者$ docker exec -it mysql-master /bin/sh
注1:如果执行目录下的docker-compose配置文件采用的是自定义命名方式,请使用如下命名进入容器:
$ docker-compose -f docker-compose-v2.yml exec --index=1 mysql-master /bin/sh
或者
$ docker exec -it mysql-master /bin/sh
登录mysql服务器,之后输入mysql密码:123456
mysql -u root -p
给用户授权并更新
grant all privileges on *.* to root@'%' identified by '123456';
flush privileges;文章来源:https://uudwc.com/A/3w16O