docker安装上mysql/redis

本文详细介绍如何使用Docker容器化技术部署MySQL和Redis数据库。包括从Docker仓库下载镜像,配置容器参数,实现数据持久化,以及通过编辑配置文件进行字符集设置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker安装上mysql

去docker仓库里搜索mysql
在这里插入图片描述

在这里插入图片描述
docker 会自动创建宿主机目录

下载mysql
 docker pull mysql:5.7
启动mysql
# --name指定容器名字 -v目录挂载 -p指定端口映射  -e设置mysql参数 -d后台运行
 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 \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.31

参数说明
 -p 3306:3306 将容器的3306端口映射到主机的3306端口
 -v/mydata/mysql/conf:/etc/mysql 将配置文件夹挂载到主机
 -v/mydata/mysql/log:/var/log/mysql 将日志文件夹挂载到主机
 -v/mydata/mysql/data:/var/lib/mysql/ 将配置文件夹挂载到主机
 -e MUSQL_ROOT_PASSWORD=root 初始化root用户的密码

以下是对这条 docker run 命令的详细解释:

命令整体作用

这条命令用于在 Docker 环境中启动一个 MySQL 5.7.31 版本的容器,并且进行了端口映射、数据卷挂载以及设置了 MySQL 的 root 用户密码等操作,方便对 MySQL 数据库进行使用和数据持久化管理。

具体参数解释

  1. -p 3306:3306
    • 这是端口映射参数。冒号左边的 3306 表示宿主机(运行 Docker 的物理机或虚拟机)上对外开放的端口,冒号右边的 3306 是容器内部 MySQL 服务默认监听的端口。意味着外部客户端可以通过访问宿主机的 3306 端口来连接到容器内运行在 3306 端口上的 MySQL 服务。例如,你在宿主机所在的局域网内的其他机器上,使用数据库客户端工具时,配置连接宿主机的 3306 端口,就能访问到这个 Docker 容器里的 MySQL 数据库了。
  2. --name mysql
    • 用于给启动的容器指定一个名称,这里将容器命名为 mysql,方便后续通过这个名称来对容器进行管理操作,比如查看容器日志、停止容器、重启容器等。例如,可以使用 docker stop mysql 命令来停止这个名为 mysql 的容器。
  3. -v /mydata/mysql/log:/var/log/mysql
    • 这是数据卷挂载操作,将宿主机上的 /mydata/mysql/log 目录挂载到容器内的 /var/log/mysql 目录。这样一来,MySQL 服务在容器内运行产生的日志文件就会存储在宿主机对应的目录下,便于查看、备份和管理日志,即使容器被删除了,日志数据依然保留在宿主机上。
  4. -v /mydata/mysql/data:/var/lib/mysql
    • 同样是数据卷挂载,把宿主机的 /mydata/mysql/data 目录挂载到容器内的 /var/lib/mysql 目录,容器内 MySQL 数据库的数据文件(如数据库表结构、数据记录等)将会存储在宿主机该目录下,实现了数据的持久化,避免容器删除或重新创建时数据丢失的问题。
  5. -v /mydata/mysql/conf:/etc/mysql
    • 也是数据卷挂载,将宿主机的 /mydata/mysql/conf 目录挂载到容器内的 /etc/mysql 目录,可用于存放自定义的 MySQL 配置文件,方便对容器内 MySQL 的配置(如字符集、缓存设置等)进行个性化调整,容器启动时会加载宿主机对应目录下挂载进去的配置文件。
  6. -e MYSQL_ROOT_PASSWORD=123456
    • 这个参数用于设置环境变量,在这里具体是设置了 MySQL 数据库 root 用户的密码为 123456,使得通过 root 用户登录到这个容器内的 MySQL 服务时需要使用该密码进行验证。
  7. -d mysql:5.7.31
    • -d 表示以守护进程(后台运行)的方式启动容器,这样容器会在后台持续运行而不会占用当前终端的输入输出。mysql:5.7.31 则指定了要使用的镜像名称及版本,告诉 Docker 从本地仓库(如果存在)或者远程 Docker Hub 等镜像仓库拉取 mysql 镜像的 5.7.31 版本来启动容器。

这条命令综合运用了 Docker 的多个常用功能,为在容器中稳定运行 MySQL 数据库并管理其数据和配置提供了便利的方式。不过在实际应用中,出于安全考虑,要注意妥善保管像 MySQL root 用户密码这样的敏感信息,并且合理配置相关的网络访问规则等。

命令解释:进入容器
推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止
docker exec :在运行的容器中执行命令
-d :分离模式: 在后台运行

-i :即使没有附加也保持STDIN 打开

-t :分配一个伪终端

要退出终端,直接输入 exit

重启 容器 :restart

vi:文本编辑器

  1. .命令模式: vi/vim 文件路径/文件名
  2. 输入模式:按下 i 进入输入模式(也称为编辑模式),开始编辑文字
  3. 按下 ESC 按钮回到一般模式
    . 底线命令模式: 按
    在一般模式中按下 :wq 储存后离开 vi
    w-保存
    q-退出
docker exec -it mysql bin/bash
exit;

vi /mydata/mysql/conf/my.conf 

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve



docker restart mysql

Docker 安装 Redis

docker pull redis

mkdir:创建目录。

mkdir + dirname
1
参数
-p: 创建mydir目录以及mydir目录下面的dir_test文件。允许创建目录及子目录
-m:创建指定权限的目录

在这里插入代码片# 在虚拟机中
mkdir -p /mydata5.7/redis/conf

touch /mydata5.7/redis/conf/redis.conf

docker run -p 6379:6379 --name redis \
-v /mydata5.7/redis/data:/data \
-v /mydata5.7/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

# 直接进去redis客户端。
docker exec -it redis redis-cli

默认是不持久化的。在配置文件中输入appendonly yes,就可以aof持久化了。修改完docker restart redis,docker -it redis redis-cli

vim /mydata5.7/redis/conf/redis.conf
# 插入下面内容
appendonly yes
保存


docker restart redis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yzhSWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值