Vagrant CentOS7 安装 Docker 及使用 Docker 安装 MySQL

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
相关推荐
Zfox_31 分钟前
CANN Catlass 算子模板库深度解析:高性能 GEMM 融合计算、Cube Unit Tiling 机制与编程范式实践
docker·云原生·容器·eureka
春日见1 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
DARLING Zero two♡1 小时前
告别 Docker 命令行!Portainer+cpolar 让容器管理从局域网走向公网
运维·docker·容器
斯普信专业组2 小时前
构建基于MCP的MySQL智能运维平台:从开源服务端到交互式AI助手
运维·mysql·开源·mcp
liu****2 小时前
2.深入浅出理解虚拟化与容器化(含Docker实操全解析)
运维·c++·docker·容器·虚拟化技术
Exquisite.2 小时前
Mysql
数据库·mysql
logocode_li3 小时前
OCI/CRI 双标准下:从 dockerd 到 containerd 的 K8s 运行时迭代史
docker·云原生·容器·k8s
_运维那些事儿15 小时前
VM环境的CI/CD
linux·运维·网络·阿里云·ci/cd·docker·云计算
·云扬·15 小时前
MySQL Binlog落盘机制深度解析:性能与安全性的平衡艺术
android·mysql·adb
霖霖总总15 小时前
[小技巧64]深入解析 MySQL InnoDB 的 Checkpoint 机制:原理、类型与调优
数据库·mysql