1、安装 Docker
1.1、删除旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.2、安装必要的依赖包
sudo yum install -y yum-utils
1.3、配置源地址,即告诉系统去哪里下载 Docker
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.4、安装Docker引擎、客户端、容器等
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
1.5、启动Docker
sudo systemctl start docker
1.6、检查 Docker 版本查看是否安装启动成功
docker -v
1.7、设置 Docker 开机启动
sudo systemctl enable docker
1.8、配置镜像加速
1.8.1、创建或修改 vi /etc/docker/daemon.json 文件
1.8.2、修改为如下形式
{
"registry-mirrors": [
"https://registry.hub.docker.com",
"http://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.nju.edu.cn"
]}
1.8.3、加载重启 Docker
systemctl restart docker
2、安装 MySQL
2.1、下载镜像文件
2.2、在主机上创建三个文件夹,分别是挂载日志文件的文件夹 /mydata/mysql/log,挂载数据文件的文件夹 /mydata/mysql/data,挂载配置文件的文件夹 /mydata/mysql/conf
2.3、在文件夹 /mydata/mysql/conf 下创建配置文件 my.cnf,内容参考
[mysqld]
# 基础设置
basedir=/var/lib/mysql
datadir=/var/lib/mysql/data
socket=/var/lib/mysql/mysql.sock
user=mysql
port=3306
# 字符集和排序规则
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 日志
log-error=/var/log/mysql/error.log
general_log_file=/var/log/mysql/general.log
general_log=0
slow_query_log=0
slow_query_log_file=/var/log/mysql/mysql-slow.log
long_query_time=2
log_queries_not_using_indexes=0
# 缓存和性能调优
key_buffer_size=16M
max_allowed_packet=16M
thread_stack=192K
thread_cache_size=8
query_cache_type=0
query_cache_size=0
query_cache_limit=1M
table_open_cache=2000
tmp_table_size=32M
max_heap_table_size=32M
# InnoDB 设置
innodb_buffer_pool_size=128M
innodb_log_file_size=25M
innodb_log_buffer_size=8M
innodb_file_per_table=1
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
# 网络设置
bind-address=0.0.0.0
skip-networking=0
# 安全设置
# 禁用 root 远程登录(注释掉或设置为 localhost)
# bind-address = 127.0.0.1
# 允许的最大连接数
max_connections=151
# SQL 模式
sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
# 其他的 MySQL 特定设置...
# [mysqld_safe]
# log-error=/var/log/mysqld.log
# pid-file=/var/run/mysqld/mysqld.pid
# [client]
# socket=/var/lib/mysql/mysql.sock
# default-character-set=utf8mb4
# [mysql]
# default-character-set=utf8mb4
# 请注意:上面的设置只是一个示例,并可能需要根据你的具体环境和需求进行调整。
# 在进行任何更改之前,请确保备份你的 my.cnf 文件,并了解每个设置的作用。
2.4、创建实例并启动
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=你的密码 \
-d mysql:5.7
-p 3306:3306 将容器的3306端口映射到主机的3306端口
-v /mydata/mysql/log:/var/log/mysql 将日志文件挂载到主机
-v /mydata/mysql/data:/var/lib/mysql 将数据文件挂载到主机
-v /mydata/mysql/conf:/etc/mysql/conf.d 将配置文件挂载到主机
-e MYSQL_ROOT_PASSWORD=密码 初始化 root 用户的密码
2.5、设置 MySQL 自启动
docker update --restart=always 容器ID 或容器名称
2.6、以交互模式运行 MySQL 进行测试
docker exec -it 容器 ID 或者容器名称 /bin/bash
2.7、连接数据库
mysql -u root -p