一、部署Docker Compose
1、查看有无Docker Compose
[root@CAIP122 ~]# docker-compose --version
-bash: docker-compose: command not found

2、安装当前稳定版本
sudo curl -L “https://github.com/docker/compose/releases/download/1.28.6/docker-compose-(uname -m)” -o /usr/local/bin/docker-compose

国内镜像
curl -L https://get.daocloud.io/docker/compose/releases/download/1.28.6/docker-compose-uname -s-uname -m > /usr/local/bin/docker-compose
[root@CAIP122 ~]# curl -L https://get.daocloud.io/docker/compose/releases/download/1.28.6/docker-compose-uname -s-uname -m > /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 423 100 423 0 0 435 0 --:–:-- --:–:-- --:–:-- 435
100 11.6M 100 11.6M 0 0 2032k 0 0:00:05 0:00:05 --:–:-- 2465k

你可以通过修改URL中的版本,可以自定义您的需要的版本。
3、对二进制文件应用可执行权限
[root@CAIP122 ~]# chmod +x /usr/local/bin/docker-compose

4、创建软链:
[root@CAIP122 ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

5、查看版本(也可以校验是否安装成功)
[root@CAIP122 ~]# docker-compose --version
docker-compose version 1.28.6, build 5db8d86f

dokcer-compose常用命令
1、docker-compose up
命令聚合每个容器的输出,命令退出时,所有容器都将停止
2、docker-compose up -d
在后台启动容器并使它们保持运行
3、docker-compose logs -f
查看该容器的启动的日志打印(日志从头打印)
4、docker logs -f container_id
查看某一容器的启动的日志打印(日志从头打印)
5、docker logs -f --tail 数量词 container_id
查看某一容器的启动的日志打印(查看最后n条日志打印)
6、docker-compose stop
停止compose服务
7、docker-compose restart
重启compose服务
8、docker-compose kill
kill compose服务
9、docker-compose ps
查看compose服务状态
10、docker-compose rm
删除compose服务
二、Docker Compose 安装 mysql8.0.30
● data 文件夹是数据存储目录
● init 文件夹可以放置 .sh .sql 文件 在初始化容器时会执行
● conf 文件夹 放置 my.cnf 配置文件
1、前置目录准备
[root@CAIP122 ~]# mkdir -p /data/mysql8/data
[root@CAIP122 ~]# mkdir -p /data/mysql8/init
[root@CAIP122 ~]# mkdir -p /data/mysql8/config

创建/data/soft/mysql8.0/conf目录,在conf文件夹内创建 my.cnf:
2、编写docker-compose.yml文件
在/data/soft/mysql8.0/目录下创建docker-compose.yml,并编辑docker-compose.yml:
[root@CAIP122 data]# vim docker-compose.yml

文件内增加的详细注释
version: ‘3’
services:
mysql:
image: mysql:8.0.30
restart: always
container_name: mysql8
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: Pwd@root830
command:
–default-authentication-plugin=mysql_native_password
–character-set-server=utf8mb4
–collation-server=utf8mb4_general_ci
–explicit_defaults_for_timestamp=true
–lower_case_table_names=1
ports:
- 3310:3306
volumes:
- /data/mysql8/data:/var/lib/mysql
- /data/mysql8/config:/etc/mysql/conf.d
- /data/mysql8/init:/docker-entrypoint-initdb.d

3、启动docker-compose
在首次执行 尽量使用 docker-compose up 这样可以看到报错
docker-compose up -d 后期可以加-d后台启动
[root@CAIP122 data]# docker-compose up -d
Creating network “data_default” with the default driver
Pulling mysql (mysql:8.0.30)…
8.0.30: Pulling from library/mysql
295ca2342728: Pull complete
79af4312a7e0: Pull complete
48d3d73d1704: Pull complete
521b8724b397: Pull complete
b8cf360b4a14: Pull complete
0115482cc006: Pull complete
a360b08917ea: Pull complete
12deeb3c1323: Pull complete
ee1dc10db1e9: Pull complete
64be404ad29c: Pull complete
1921fe8879a2: Pull complete
Digest: sha256:3c1aab708f6e57fc4dccafe36baccc7219acfb4ec450f3fb6d370ea89409e906
Status: Downloaded newer image for mysql:8.0.30
Creating mysql8 … done
up 是从拉取到构建到运行的全套指令
-d 是后台运行
启动容器(守护进程):docker-compose up -d
查看容器:docker-compose ps
重启容器:docker-compose restart
清理容器:docker-compose down
4、检查是否启动
[root@CAIP122 data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6d72861d9c08 mysql:8.0.30 “docker-entrypoint.s…” 4 minutes ago Up 4 minutes 33060/tcp, 0.0.0.0:3310->3306/tcp mysql8
[root@CAIP122 data]# docker-compose ps
Name Command State Ports
mysql8 docker-entrypoint.sh --def … Up 0.0.0.0:3310->3306/tcp, 33060/tcp

5、进入容器exec
[root@CAIP122 data]# docker exec -it mysql8 bash
bash-4.4#

#mysql为容器名 或容器ID缩写也可例 6d72861d9c08
6、在容器内连接mysql
bash-4.4# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.30 MySQL Community Server - GPL
Copyright © 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
±-------------------+
4 rows in set (0.01 sec)

7、不进入容器连接mysql测试
需要加上IP和映射端口3310
exit
[root@CAIP122 data]# mysql -h127.0.0.1 -uroot -P3310 -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.30 MySQL Community Server - GPL
Copyright © 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

不进入容器,需要加上IP和映射端口3310,通过 root 和密码 123456 访问 MySQL 服务。
8、修改登录密码
mysql> ALTER USER’root’@’%’ IDENTIFIED BY ‘Pwd@root1020’;
Query OK, 0 rows affected (0.01 sec)

刷新权限
[mysql]>FLUSH PRIVILEGES;

9、启动成功,用Navicat 测试连接
Navicat 连接到服务器3310, 3310和容器内的3306映射 就可以连接上了

测试连接


10、Docker查看日志
[root@CAIP122 data]# docker logs mysql8

通过docker-compose日志
[root@CAIP122 data]# docker-compose logs





