暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

CentOS7 部署 Docker Compose 安装新版 mysql 8.0.30

原创 shunwah 2022-10-24
3843

一、部署Docker Compose

1、查看有无Docker Compose

[root@CAIP122 ~]# docker-compose --version
-bash: docker-compose: command not found

image.png

2、安装当前稳定版本

sudo curl -L “https://github.com/docker/compose/releases/download/1.28.6/docker-compose-(unames)(uname -s)-(uname -m)” -o /usr/local/bin/docker-compose
image.png
国内镜像
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
image.png
你可以通过修改URL中的版本,可以自定义您的需要的版本。

3、对二进制文件应用可执行权限

[root@CAIP122 ~]# chmod +x /usr/local/bin/docker-compose
image.png

4、创建软链:

[root@CAIP122 ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
image.png

5、查看版本(也可以校验是否安装成功)

[root@CAIP122 ~]# docker-compose --version
docker-compose version 1.28.6, build 5db8d86f
image.png

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
image.png
创建/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
image.png
文件内增加的详细注释
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
image.png

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
image.png

5、进入容器exec

[root@CAIP122 data]# docker exec -it mysql8 bash
bash-4.4#
image.png
#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)
image.png

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.
image.png
不进入容器,需要加上IP和映射端口3310,通过 root 和密码 123456 访问 MySQL 服务。

8、修改登录密码

mysql> ALTER USER’root’@’%’ IDENTIFIED BY ‘Pwd@root1020’;
Query OK, 0 rows affected (0.01 sec)
image.png

刷新权限

[mysql]>FLUSH PRIVILEGES;
image.png

9、启动成功,用Navicat 测试连接

Navicat 连接到服务器3310, 3310和容器内的3306映射 就可以连接上了
image.png

测试连接

image.png
image.png

10、Docker查看日志

[root@CAIP122 data]# docker logs mysql8
image.png

通过docker-compose日志

[root@CAIP122 data]# docker-compose logs
image.png

最后修改时间:2022-10-24 18:00:45
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论