1、在CentOS安装Docker
1.1 安装
- 安装Docker的依赖包
sudo yum install -y yum-utils
- 设置Docker的稳定仓库(阿里仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装 Docker CE 和 CLI
yum install docker-ce docker-ce-cli containerd.io
- 启动 Docker 并设置开机自启
systemctl start docker
***systemctl enable docker
1.2 查看docker和docker compose版本
docker --version
docker compose version
2、创建Docker配置
2.1 在用户目录下创建 docker-compose.yml 文件
version: '3'
services:
mysql:
restart: always
privileged: true
image: mysql:5.7
container_name: mysql5.7
volumes:
- ./db:/var/lib/mysql
- ./conf:/etc/mysql/conf.d
- ./logs:/var/logs
- ./mysql-files:/var/lib/mysql-files
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
environment:
MYSQL_ROOT_PASSWORD: "12345678"
ports:
- 3306:3306
network_mode: "bridge"
2.2 初始化MySQL映射目录
mkdir -p /data/mysql
cd /data/mysql
mkdir db
mkdir conf
mkdir logs
2.3 创建MYSQL配置文件
###### [mysql]配置模块 ######
[mysql]
# 设置MySQL客户端默认字符集
default-character-set=utf8mb4
###### [mysqld]配置模块 ######
[mysqld]
port=3306
user=mysql
# sql_mode 是 MySQL 的一个系统变量,它控制了 MySQL 在执行 SQL 语句时的行为。
# STRICT_TRANS_TABLES:启用严格模式,当插入或更新数据时,MySQL 将拒绝任何不符合数据类型的数据。
# NO_ZERO_IN_DATE:当日期或日期时间字段中的值为 "0000-00-00" 时,MySQL 将抛出警告或错误。
# NO_ZERO_DATE:当日期或日期时间字段中的值为 "0000-00-00" 或 "0000-00-00 00:00:00" 时,MySQL 将抛出警告或错误。
# ERROR_FOR_DIVISION_BY_ZERO:当除数为零时,MySQL 将抛出错误。
# NO_ENGINE_SUBSTITUTION:当请求的存储引擎不可用时,MySQL 将抛出错误,而不是自动使用另一个可用的存储引擎。
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# MySQL8 的密码认证插件
default_authentication_plugin=mysql_native_password
# 禁用符号链接以防止各种安全风险
symbolic-links=0
# 允许最大连接数
max_connections=1000
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=1
max_allowed_packet=16M
# 设置时区(按照实际情况填写)
default-time_zone='+0:00'
# binlog 配置
expire-logs-days = 90
max-binlog-size = 500M
# server-id 配置
server-id = 1
###### [client]配置模块 ######
[client]
default-character-set=utf8mb4
# 在测试目录中在后台执行该服务可以加上 -d 参数:
docker compose up -d
# 如果遇到如下类似的问题
error pulling image configuration: download failed after attempts=6: dial tcp xxxxxx:443: i/o timeout
error pulling image configuration: download failed after attempts=6: dial tcp 67.230.169.182:443: connect: connection refused
# 解决办法
vim /etc/docker/daemon.json
# 编辑如下内容
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
# 最后重启
systemctl daemon-reload
systemctl restart docker
参考文献:https://blog.csdn.net/qq_43090226/article/details/131634119