每天半小时,轻松学Docker第十五篇:Docker Compose案例3-MariaDB主从与读写分离服务部署

一、上期回顾
每天半小时,轻松学Docker第十四篇:Docker Compose案例2-负载均衡Web网站开发与部署
二、案例 MariaDB主从服务部署
1、项目目录创建与初始化
创建~/dkcompose/mariadb-ms文件夹,并切入该目录:
rz@demo:~$ mkdir ~/dkcompose/mariadb-ms
rz@demo:~$ cd dkcompose/mysql-ms/
rz@demo:~/dkcompose/mysql-ms$
2、配置文件准备
在~/dkcompose/mysql-ms目录下先创建相关配置文件的空文件:
rz@demo:~/dkcompose/mysql-ms$ touch 50-server.cnf
rz@demo:~/dkcompose/mysql-ms$ touch compose.yaml
rz@demo:~/dkcompose/mysql-ms$ touch MDockerfile
rz@demo:~/dkcompose/mysql-ms$ touch SDockerfile
rz@demo:~/dkcompose/mysql-ms$ touch sources.list
rz@demo:~/dkcompose/mysql-ms$ tree
.
├── 50-server.cnf
├── compose.yaml
├── MDockerfile
├── SDockerfile
└── sources.list
1 directory, 5 files
其中,50-server.cnf是数据库db1的配置文件;compose.yaml是docker compose配置文件,定义了服务、容器及容器行为;MDockerfile用于构建db1服务的镜像,SDockerfile用于构建db2服务的镜像;sources.list是ubuntu:20.04的软件源配置,用于加速软件安装。
3、数据库主配置文件
编写数据db1的配置文件50-server.cnf文件,内容如下
[server]
[mysqld]
user = mysql
pid-file = /run/mysqld/mysqld.pid
socket = /run/mysqld/mysqld.sock
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
query_cache_size = 16M
log_error = /var/log/mysql/error.log
server-id = 2
log_bin = mysql-bin
expire_logs_days = 10
binlog_ignore_db = mysql
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
[embedded]
[mariadb]
[mariadb-10.3]
50-server.cnf是db1的主配置文件,其中定义了服务的端口、日志文件类型等配置。
4、Docker Compose编排配置
编写docker compose配置文件compose.yaml,内容如下:
services:
db1:
image: ubuntu:db1
build:
context: .
dockerfile: MDockerfile
networks:
- db_network
ports:
- 33060:3306
db2:
image: ubuntu:db2
build:
context: .
dockerfile: SDockerfile
networks:
- db_network
ports:
- 33061:3306
networks:
db_network:
driver: bridge
5、主数据库镜像构建配置
编写用于构建db1服务的镜像对应的MDockerfile文件:
FROM ubuntu:20.04
COPY sources.list /etc/apt
RUN apt-get update && apt-get dist-upgrade -y && \
apt-get install mariadb-server -y
COPY 50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf
RUN /etc/init.d/mysql start \
&& mysql -u root -e "create user 'root'@'%' identified by '123456'" \
&& mysql -u root -e "grant all on *.* to 'root'@'%'"
EXPOSE 3306
CMD ["/usr/bin/mysqld_safe"]
6、从数据库镜像构建配置
编写用于构建db2服务的镜像对应的SDockerfile文件:
FROM ubuntu:20.04
COPY sources.list /etc/apt
RUN apt-get update && apt-get dist-upgrade -y \
&& apt-get install mariadb-server -y \
&& sed -i s/bind-address/#bind-address/g /etc/mysql/mariadb.conf.d/50-server.cnf \
&& /etc/init.d/mysql start \
&& mysql -u root -e "change master to master_host='db1', \
master_user='root',master_password='123456'" \
&& mysql -u root -e "start slave"
EXPOSE 3306
CMD ["/usr/bin/mysqld_safe"]
7、软件源配置
编写ubuntu:20.04的软件源配置sources.list文件:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
8、服务构建与启动
rz@demo:~/dkcompose/mysql-ms$ docker compose build
[+] Building 0.0s (0/1) docker:default
[+] Building 0.2s
✔ Service db1 Building 0.2s
[+] Building 2.2s (18/18) FINISHED docker:default
=> [db1 internal] load build definition from MDockerfile 0.0s
=> => transferring dockerfile: 463B 0.0s
=> [db2 internal] load build definition from SDockerfile 0.0s
=> => transferring dockerfile: 480B 0.0s
=> [db2 internal] load metadata for docker.io/library/ubuntu:20.04 2.1s
=> [db1 internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [db2 internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [db2 1/3] FROM docker.io/library/ubuntu:20.04@sha256:8feb4d8ca5354def3 0.0s
=> [db1 internal] load build context 0.0s
=> => transferring context: 67B 0.0s
=> [db2 internal] load build context 0.0s
=> => transferring context: 34B 0.0s
=> CACHED [db1 2/5] COPY sources.list /etc/apt 0.0s
=> CACHED [db1 3/5] RUN apt-get update && apt-get dist-upgrade -y && 0.0s
=> CACHED [db1 4/5] COPY 50-server.cnf /etc/mysql/mariadb.conf.d/50-serve 0.0s
=> CACHED [db1 5/5] RUN /etc/init.d/mysql start && mysql - 0.0s
=> [db1] exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:e9c9668cf0b88e5fa6d09739ab53379e540fda2543a8f9 0.0s
=> => naming to docker.io/library/ubuntu:db1 0.0s
=> CACHED [db2 2/3] COPY sources.list /etc/apt 0.0s
=> CACHED [db2 3/3] RUN apt-get update && apt-get dist-upgrade -y && ap 0.0s
=> [db2] exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:3bb4b6e5f24fdf5f3f26e224436f644adcb61beac78f74 0.0s
[+] Building 2/2 docker.io/library/ubuntu:db2 0.0s
✔ Service db1 Built 2.3s
✔ Service db2 Built 2.3s
rz@demo:~/dkcompose/mysql-ms$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu db1 e9c9668cf0b8 19 minutes ago 601MB
ubuntu db2 3bb4b6e5f24f 19 minutes ago 487MB
...
rz@demo:~/dkcompose/mysql-ms$ docker compose up -d
[+] Running 2/0
✔ Container mysql-ms-db2-1 Running 0.0s
✔ Container mysql-ms-db1-1 Running 0.0s
rz@demo:~/dkcompose/mysql-ms$ docker compose ps
NAME IMAGE SERVICE STATUS PORTS
mysql-ms-db1-1 ubuntu:db1 db1 Up 20 minutes ...:33060->3306...
mysql-ms-db2-1 ubuntu:db2 db2 Up 20 minutes ...:33061->3306...
9、主从同步状态验证
运行mysql,使用端口33061登录数据库db2,查看主从服务状态:
rz@demo:~/dkcompose/mysql-ms$ mysql -h 127.0.0.1 -P33061 -uroot -p123456 -e "show slave status\G"
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: db1
Master_User: root
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 342
Relay_Log_File: mysqld-relay-bin.000004
Relay_Log_Pos: 641
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Slave_DDL_Groups: 2
Slave_Non_Transactional_Groups: 0
Slave_Transactional_Groups: 0
10、数据同步功能测试
使用端口33060登录数据库db1,创建数据库、数据表:
rz@demo:~/dkcompose/mysql-ms$ mysql -h 127.0.0.1 -P33060 -uroot -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 10.3.39-MariaDB-0ubuntu0.20.04.2-log Ubuntu 20.04
MariaDB [(none)]> create database student_manager;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> use student_manager;
Database changed
MariaDB [student_manager]> create table student(
-> id int primary key auto_increment,
-> name varchar(20)
-> );
Query OK, 0 rows affected (0.008 sec)
MariaDB [student_manager]> insert into student values(null, 'zhangsan');
Query OK, 1 row affected (0.003 sec)
MariaDB [student_manager]> exit;
Bye
rz@demo:~/dkcompose/mysql-ms$ mysql -h 127.0.0.1 -P33061 -uroot -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 14
Server version: 10.3.39-MariaDB-0ubuntu0.20.04.2 Ubuntu 20.04
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| student_manager |
+--------------------+
4 rows in set (0.001 sec)
MariaDB [(none)]> use student_manager;
Database changed
MariaDB [student_manager]> select * from student;
+----+----------+
| id | name |
+----+----------+
| 1 | zhangsan |
+----+----------+
1 row in set (0.001 sec)
11、服务停止与清理
rz@demo:~/dkcompose/mysql-ms$ docker compose down
[+] Running 3/3
✔ Container mysql-ms-db2-1 Removed 10.3s
✔ Container mysql-ms-db1-1 Removed 10.4s
✔ Network mysql-ms_db_network Removed 0.3s
rz@demo:~/dkcompose/mysql-ms$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
rz@demo:~/dkcompose/mysql-ms$ cd
rz@demo:~$
三、案例 MariaDB读写分离服务部署
1、项目目录创建
rz@demo:~$ mkdir dkcompose/mysql-mycat
rz@demo:~$ cd dkcompose/mysql-mycat/
rz@demo:~/dkcompose/mysql-mycat$
2、配置文件初始化
rz@demo:~/dkcompose/mysql-mycat$ touch 50-server.cnf
rz@demo:~/dkcompose/mysql-mycat$ touch compose.yaml
rz@demo:~/dkcompose/mysql-mycat$ touch MDockerfile
rz@demo:~/dkcompose/mysql-mycat$ touch SDockerfile
rz@demo:~/dkcompose/mysql-mycat$ touch MycatDockerfile
rz@demo:~/dkcompose/mysql-mycat$ touch sources.list
rz@demo:~/dkcompose/mysql-mycat$ touch schema.xml
rz@demo:~/dkcompose/mysql-mycat$ touch server.xml
rz@demo:~/dkcompose/mysql-mycat$ touch supervisord.conf
3、MyCat程序文件准备
下载或拷贝Mycat的程序文件,可以从https://github.com/MyCATApache/Mycat-Server/releases下载,本示例所下载的文件名为Mycat-server-1.6.7.5-release-20200422133810-linux.tar.gz,为方便使用,重命名为Mycat-server-1.6.7.5.tar.gz。可以先使用笔记本或实验物理设备主机上的下载到本地,然后再通过MobaXterm工具等工具传至虚拟机服务器中。
rz@demo:~/dkcompose/mysql-mycat$ mv ~/Mycat-server-1.6.7.5.tar.gz .
rz@demo:~/dkcompose/mysql-mycat$ tree
.
├── 50-server.cnf
├── compose.yaml
├── MDockerfile
├── MycatDockerfile
├── Mycat-server-1.6.7.5.tar.gz
├── schema.xml
├── SDockerfile
├── server.xml
├── sources.list
└── supervisord.conf
1 directory, 10 files
4、数据库主配置文件
[server]
[mysqld]
user = mysql
pid-file = /run/mysqld/mysqld.pid
socket = /run/mysqld/mysqld.sock
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
query_cache_size = 16M
log_error = /var/log/mysql/error.log
server-id = 2
log_bin = mysql-bin
expire_logs_days = 10
binlog_ignore_db = mysql
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
[embedded]
[mariadb]
[mariadb-10.3]
5、Docker Compose编排配置
services:
db1:
image: ubuntu:db1
build:
context: .
dockerfile: MDockerfile
networks:
- db_network
db2:
image: ubuntu:db2
build:
context: .
dockerfile: SDockerfile
networks:
- db_network
mycat:
image: ubuntu:mycat
build:
context: .
dockerfile: MycatDockerfile
ports:
- 8066:8066
- 9066:9066
networks:
- db_network
networks:
db_network:
driver: bridge
6、主数据库镜像构建配置
编写用于构建db1容器的来源镜像的MDockerfile,内容如下:
FROM ubuntu:20.04
COPY sources.list /etc/apt
RUN apt-get update && apt-get dist-upgrade -y \
&& apt-get install mariadb-server -y
COPY 50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf
RUN /etc/init.d/mysql start \
&& mysql -u root -e "create user 'root'@'%' identified by '123456'" \
&& mysql -u root -e "grant all on *.* to 'root'@'%'" \
&& mysql -u root -e "create database student_manager" \
&& mysql -u root \
-e "create table student_manager.student (\
id int primary key auto_increment, name varchar(20))" \
&& mysql -u root -e "insert into student_manager.student values(null, 'zhangsan')"
EXPOSE 3306
CMD ["/usr/bin/mysqld_safe"]
7、从数据库镜像构建配置
编写用于构建db2容器的来源镜像SDockerfile,内容如下:
FROM ubuntu:20.04
COPY sources.list /etc/apt
RUN apt-get update && apt-get dist-upgrade -y \
&& apt-get install mariadb-server -y \
&& sed -i s/bind-address/#bind-address/g /etc/mysql/mariadb.conf.d/50-server.cnf \
&& /etc/init.d/mysql start \
&& mysql -u root -e "change master to master_host='db1', \
master_user='root',master_password='123456'" \
&& mysql -u root -e "start slave"
EXPOSE 3306
CMD ["/usr/bin/mysqld_safe"]
8、MyCat代理镜像构建配置
编写用于构建mycat容器的来源镜像MycatDockerfile,内容如下:
FROM ubuntu:20.04
ADD sources.list /etc/apt
ADD Mycat-server-1.6.7.5.tar.gz /root
RUN apt-get update && apt-get dist-upgrade -y \
&& apt-get install openjdk-8-jdk -y \
&& mkdir /root/mycat/logs
RUN apt-get install supervisor -y
ADD schema.xml /root/mycat/conf
ADD server.xml /root/mycat/conf
ADD supervisord.conf /etc/supervisord.conf
CMD ["/usr/bin/supervisord"]
9、MyCat数据源配置
编写mycat的配置文件schema.xml,内容如下:
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="USERDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1"></schema>
<dataNode name="dn1" dataHost="localhost1" database="student_manager" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="3" dbType="mysql" dbDriver="native" writeType="0" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="db1:3306" user="root" password="123456">
<readHost host="hostS1" url="db2:3306" user="root" password="123456" />
</writeHost>
</dataHost>
</mycat:schema>
10、MyCat服务配置
编写mycat的配置文件server.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
<system>
<property name="nonePasswordLogin">0</property>
<property name="ignoreUnknownCommand">0</property>
<property name="useHandshakeV10">1</property>
<property name="removeGraveAccent">1</property>
<property name="useSqlStat">0</property>
<property name="useGlobleTableCheck">0</property>
<property name="sqlExecuteTimeout">300</property>
<property name="sequenceHandlerType">1</property>
<property name="sequnceHandlerPattern">(?:(\s*next\s+value\s+for\s*MYCATSEQ_(\w+))(,|\)|\s)*)+</property>
<property name="subqueryRelationshipCheck">false</property>
<property name="sequenceHanlderClass">io.mycat.route.sequence.handler.HttpIncrSequenceHandler</property>
<property name="processorBufferPoolType">0</property>
<property name="handleDistributedTransactions">0</property>
<property name="useOffHeapForMerge">0</property>
<property name="memoryPageSize">64k</property>
<property name="spillsFileBufferSize">1k</property>
<property name="useStreamOutput">0</property>
<property name="systemReserveMemorySize">384m</property>
<property name="useZKSwitch">false</property>
<property name="strictTxIsolation">false</property>
<property name="parallExecute">0</property>
</system>
<user name="root">
<property name="password">123456</property>
<property name="schemas">USERDB</property>
<property name="usingDecrypt">0</property>
</user>
</mycat:server>
11、软件源配置
编写ubuntu:20.04的软件更新源列表sources.list,内容如下:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
12、进程管理配置
编写supervisor程序的配置文件supervisord.conf,其中定义了启动mycat服务的指令,内容如下:
[supervisord]
nodaemon=true
[program:mycat]
command=/bin/bash /root/mycat/bin/mycat start
13、镜像构建过程
rz@demo:~/dkcompose/mysql-mycat$ docker compose build
[+] Building 0.0s (0/1) docker:default
[+] Building 0.1s
✔ Service db2 Building 0.1s
✔ Service mycat Building 0.1s
[+] Building 0.7s (30/30) FINISHED docker:default
=> [mycat internal] load build definition from MycatDockerfile 0.0s
=> => transferring dockerfile: 409B 0.0s
=> [db2 internal] load build definition from SDockerfile 0.0s
=> => transferring dockerfile: 472B 0.0s
=> [db1 internal] load build definition from MDockerfile 0.0s
=> => transferring dockerfile: 694B 0.0s
=> [mycat internal] load metadata for docker.io/library/ubuntu:20.04 0.3s
=> [db2 internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [mycat internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [db1 internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [db2 1/5] FROM docker.io/library/ubuntu:20.04@sha256:8feb4d8ca5354def3 0.0s
=> [db1 internal] load build context 0.0s
=> => transferring context: 507B 0.0s
=> [mycat internal] load build context 0.3s
=> => transferring context: 23.22MB 0.3s
=> [db2 internal] load build context 0.0s
=> => transferring context: 34B 0.0s
=> CACHED [db1 2/5] COPY sources.list /etc/apt 0.0s
=> CACHED [db1 3/5] RUN apt-get update && apt-get dist-upgrade -y && apt- 0.0s
=> CACHED [db1 4/5] COPY 50-server.cnf /etc/mysql/mariadb.conf.d/50-serve 0.0s
=> CACHED [db1 5/5] RUN /etc/init.d/mysql start && mysql -u root -e "crea 0.0s
=> [db1] exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:58866fa3752d57de2800849a1c8dff7b9656a0642efcba 0.0s
=> => naming to docker.io/library/ubuntu:db1 0.0s
=> CACHED [db2 2/3] COPY sources.list /etc/apt 0.0s
=> CACHED [db2 3/3] RUN apt-get update && apt-get dist-upgrade -y && apt- 0.0s
=> [db2] exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:4d2cb14c71c9d728b21abbbc26c6a4370ceec087e1f9c9 0.0s
=> => naming to docker.io/library/ubuntu:db2 0.0s
=> [db1] resolving provenance for metadata file 0.0s
=> [db2] resolving provenance for metadata file 0.0s
=> CACHED [mycat 2/8] ADD sources.list /etc/apt 0.0s
=> CACHED [mycat 3/8] ADD Mycat-server-1.6.7.5.tar.gz /root 0.0s
=> CACHED [mycat 4/8] RUN apt-get update && apt-get dist-upgrade -y && ap 0.0s
=> CACHED [mycat 5/8] RUN apt-get install supervisor -y 0.0s
=> CACHED [mycat 6/8] ADD schema.xml /root/mycat/conf 0.0s
=> CACHED [mycat 7/8] ADD server.xml /root/mycat/conf 0.0s
=> CACHED [mycat 8/8] ADD supervisord.conf /etc/supervisord.conf 0.0s
=> [mycat] exporting to image 0.0s
[+] Building 3/3 layers 0.0s
✔ Service db2 Built 0.7s
✔ Service mycat Built 0.8s
✔ Service db1 Built 0.7s
14、服务启动与状态检查
rz@demo:~/dkcompose/mysql-mycat$ docker compose up -d
[+] Running 3/0
✔ Container mysql-mycat-db2-1 Running 0.0s
✔ Container mysql-mycat-mycat-1 Running 0.0s
✔ Container mysql-mycat-db1-1 Running 0.0s
rz@demo:~/dkcompose/mysql-mycat$ docker compose ps
NAME IMAGE SERVICE STATUS PORTS
mysql-mycat-db1-1 ubuntu:db1 db1 Up 31 minutes 3306/tcp
mysql-mycat-db2-1 ubuntu:db2 db2 Up 31 minutes 3306/tcp
mysql-mycat-mycat-1 ubuntu:mycat mycat Up 31 minutes 0.0.0.0:8066->8066/tcp, :::8066->8066/tcp, 0.0.0.0:9066->9066/tcp, :::9066->9066/tcp
15、读写分离功能验证
rz@demo:~/dkcompose/mysql-mycat$ mysql --default-auth=mysql_native_password -h 127.0.0.1 -P8066 -uroot -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.29-mycat-1.6.7.5-release-20200422133810 MyCat Server (OpenCloudDB)
MySQL [(none)]> show databases;
+----------+
| DATABASE |
+----------+
| USERDB |
+----------+
1 row in set (0.001 sec)
MySQL [(none)]> use USERDB;
Database changed
MySQL [USERDB]> show tables;
+---------------------------+
| Tables_in_student_manager |
+---------------------------+
| student |
+---------------------------+
1 row in set (0.002 sec)
MySQL [USERDB]> select * from student;
+----+----------+
| id | name |
+----+----------+
| 1 | zhangsan |
+----+----------+
1 row in set (0.117 sec)
MySQL [USERDB]> insert into student values(null, 'lisi');
Query OK, 1 row affected (0.007 sec)
MySQL [USERDB]> select * from student;
+----+----------+
| id | name |
+----+----------+
| 1 | zhangsan |
| 2 | lisi |
+----+----------+
2 rows in set (0.001 sec)
16、集群运行状态监控
rz@demo:~/dkcompose/mysql-mycat$ mysql --default-auth=mysql_native_password -h 127.0.0.1 -P9066 -uroot -p123456 -e "show @@datasource"
+----------+--------+-------+------+------+------+-----------+------------+
| DATANODE | NAME | TYPE | HOST | PORT | W/R | READ_LOAD | WRITE_LOAD |
+----------+--------+-------+------+------+------+-----------+------------+
| dn1 | hostM1 | mysql | db1 | 3306 | W | 0 | 2 |
| dn1 | hostS1 | mysql | db2 | 3306 | R | 4 | 0 |
+----------+--------+-------+------+------+------+-----------+------------+
17、服务清理与资源释放
rz@demo:~/dkcompose/mysql-mycat$ docker compose down
[+] Running 4/4
✔ Container mysql-mycat-mycat-1 Removed 0.9s
✔ Container mysql-mycat-db1-1 Removed 10.3s
✔ Container mysql-mycat-db2-1 Removed 10.2s
✔ Network mysql-mycat_db_network Removed 0.3s
rz@demo:~/dkcompose/mysql-mycat$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
rz@demo:~/dkcompose/mysql-mycat$ docker rmi $(docker images -q)
Untagged: ubuntu:mycat
Deleted: sha256:0e4b82f7cda0f272f95441efa4e5073ce1986e88824908c0951685b82a8b475e
Untagged: ubuntu:db1
Deleted: sha256:58866fa3752d57de2800849a1c8dff7b9656a0642efcba0d0b0faaf3a79efa48
Untagged: ubuntu:db2
Deleted: sha256:4d2cb14c71c9d728b21abbbc26c6a4370ceec087e1f9c984c0b4c24784a4f407
rz@demo:~/dkcompose/mysql-mycat$ docker volume prune
WARNING! This will remove anonymous local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Volumes:
4d7221430214307ba0545a08a5f933e62c1475cadce7a4a97d4668ee1e5484aa
52c0288f57be24c192bdcc185c505d6b088191e6fda0157ae5d4c730430ddaff
9dd1245a25de9b8dc60f08bf4caefbe063b32a8d54384aed1267625c2e138857
f0d1f73b73defeeedde19e909113bba124c28511d912e95f33e55ef689f07348
Total reclaimed space: 814.4MB
rz@demo:~/dkcompose/mysql-mycat$ cd
rz@demo:~$
六、总结与预告
1、下节课程预告
每天半小时,轻松学Docker第十六篇:Docker Compose案例4-WordPress内容管理系统部署
更多推荐


所有评论(0)