在docker部署mysql8

本文详细介绍了如何在Docker中部署MySQL8,包括下载镜像、检查镜像、启动容器并设置初始密码,以及利用Docker卷和主机目录绑定来持久化数据和配置文件。还提到了my.cnf的配置以及如何在容器启动时运行初始化脚本。

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

下载mysql8的镜像
docker pull mysql/mysql-server:8.0
等待下载完成
下载完成后查看一下有没有这个镜像
docker images
在REPOSITORY一栏下面如果有mysql/mysql-server并且tag是8.0就说明下载完成

使用以下命令为MySQL社区服务器启动一个新的Docker容器 容器名字是mysql1:
docker run --name=mysql1 -d mysql/mysql-server:8.0
参数: -e MYSQL_ROOT_PASSWORD=“123456” 是初始化密码参数

Docker卷提供了一种机制来保存在Docker容器中创建的数据。在初始化时,MySQL Server容器为服务器数据目录创建一个Docker卷。用于在容器上运行docker inspect命令的JSON输出有一个 Mount键,其值提供有关数据目录卷的信息:

“Mounts”: [ { “Type”: “volume”, “Name”: “4f2d463cfc4bdd4baebcb098c97d7da3337195ed2c6572bc0b89f7e845d27652”, “Source”: “/var/lib/docker/volumes/4f2d463cfc4bdd4baebcb098c97d7da3337195ed2c6572bc0b89f7e845d27652/_data”, “Destination”: “/var/lib/mysql”, “Driver”: “local”, “Mode”: “”, “RW”: true, “Propagation”: “” } ],

Resource下就是数据库外挂宿主机的文件目录cd到目录下可以看见数据库创建的文件

保留数据的另一种方法是 在创建容器时 使用该选项绑定安装主机目录–mount。可以使用相同的技术来持久保存服务器的配置。以下命令创建MySQL Server容器并绑定安装数据目录和服务器配置文件:

Docker run --name=容器名字 --mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf --mount type=bind,src=/path-on-host-machine/datadir,dst=/var/lib/mysql -d 镜像名
Ps:目录前半段为主机目录后半段为容器目录,创建容器时必须确保宿主机的目录已经存在并且配置文件也就是my.cnf必须存在且包含mysql规范
My.cnf的内容如下
[mysqld] user=mysql

数据目录 path-on-host-machine/datadir 必须已存在。要进行服务器初始化,目录必须为空。

如果在创建数据库后立即要在数据库上运行任何.sh或 .sql脚本,则可以将它们放入主机目录,然后将目录 /docker-entrypoint-initdb.d/安装在容器内。例如:

docker run --name=mysql1 --mount type=bind,src=/path-on-host-machine/scripts/,dst=/docker-entrypoint-initdb.d/ -d mysql/mysql-server:tag

进入容器内部:docker exec -it mysql1 /bin/bash 或者 在UI界面的console进入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值