docker查询mysql 有哪些版本的镜像_使用Docker安装MySQL

在使用、学习MySQL的时候我们需要下载不同的版本的MySQL,之前我们可以使用 快速搭建单节点或者一主多从的数据库 。现在可以尝试使用利用已经存在的镜像迅速搭建一个单实例的数据库 。
搜索仓库
仓库拉取 mysql 8.0.22
选择 star最多的MySQL 镜像,当然也可以使用 或者-的 。
下载指定版本的 MySQL 镜像
?~ docker pull mysql:8.0.22
8.0.22: Pulling from library/mysql
bb79b6b2107f: Already exists
49e22f6fb9f7: Already exists
842b1255668c: Already exists
9f48d1f43000: Already exists
c693f0615bce: Already exists
8a621b9dbed2: Already exists
0807d32aef13: Already exists
a56aca0feb17: Already exists
de9d45fd0f07: Already exists
1d68a49161cc: Already exists
d16d318b774e: Pull complete
49e112c55976: Pull complete
Digest: sha256:8c17271df53ee3b843d6e16d46cff13f22c9c04d6982eb15a9a47bd5c9ac7e2d
Status: Downloaded newer image for mysql:8.0.22

我之前已经下载过 MySQL 8.0.22 的镜像文件,提示已经存在 。
启动容器
sudorun --= --name= -p 3306:3306 -e = -d mysql:8.0.22 ---set-= ---=
说明:
–restart=always:重启策略
-d: 后台运行容器 , 并返回容器ID
-p: 端口映射,格式为:主机(宿主)端口:容器端口
–name: 为容器指定一个名称
-e MYSQL_ROOT_PASSWORD:设置数据库密码
–character-set-server:设置编码
–collation-server:设置校验字符集

如果需要将命令行选项传给容器中的 MySQL 可以使用
docker run --name my8022\
-p 3306:3306\
-e MYSQL_ROOT_PASSWORD='xxxxxxyyy'\
-d mysql:8.0.22 \
--innodb_buffer_pool_size=1G \
--innodb_flush_method=O_DIRECT \

-e 是传递环境变量--ize则是MySQL的系统参数 。其实推荐将参数写到f文件里面 。
在容器中运行指定版本的 MySQL 服务器
这个比较简单,指定不同的 name 就可以了 。如果在同一台宿主机上 ,需要绑定不同的端口映射 。
docker run --name mysql-latest\
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD='123456'\
-d mysql:latest

docker run --name my my8020\
-p 3307:3306 \
-e MYSQL_ROOT_PASSWORD='123456'\
-d mysql:8.0.20

持久化容器中的数据文件
通过容器卷的方式挂载到宿主机的指定目录 。
docker run --restart=always --name=my8022 -p 3306:3306 \
--mount type=bind,src=http://www.kingceram.com/data/my3306/my.cnf,dst=/etc/my.cnf /
--mount type=bind,src=http://www.kingceram.com/data/my3306/data,dst=/var/lib/mysql /
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.22 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

关于容器卷这里简单说一下 ,通常持久化数据有两种方式 。
:管理宿主机文件系统的一部分,默认位于 /var/lib// 目录中 。
-v/--,由(:)分隔的三个字段组成,卷名:容器路径:选项列表 。选项列表可以ro/rw 。
bind :可以存储在宿主机系统的任意位置,这种方式比较常用 。但是 , bind mount在不同的宿主机系统时不可移植的,比如和Linux的目录结构是不一样的,bind mount所指向的host目录也不能一样 。这也是为什么bind mount不能出现在中的原因,因为这样就不可移植了 。
--mount,由多个键值对组成,由,分隔,每个由一个>元组组成 。type,值可以为 bind,,tmpfs 。,对于命名卷,是卷名 。对于匿名卷,这个字段被省略 。可能被指定为或 src 。,文件或目录将被挂载到容器中的路径 。可以指定为  , dst 或。-opt 可以多次指定 。

docker查询mysql 有哪些版本的镜像_使用Docker安装MySQL

文章插图
进入容器 登陆 mysql
exec-tia3b538b3404 /bin/bash
常用命令 运维镜像的常用命令
搜索镜像:dockersearch[OPTIONS]TERM
上传镜像:dockerpush[OPTIONS]NAME[:TAG]
下载镜像:dockerpull[OPTIONS]NAME[:TAG]
提交镜像:dockercommit [OPTIONS]CONTAINERNAME[:TAG]
构建镜像:dockerbuild[OPTIONS]PATH
删除镜像:dockerrmi [OPTIONS]IMAGE[IMAGE...]
增加镜像标签:dockertagSOURCE_IMAGE[:TAG]TARGET_IMAGE[:TAG]
查看所有镜像:dockerimages[OPTIONS][REPOSITORY[:TAG]]

运维容器的命令
启动/重启容器:docker start/restart CONTAINER
停止/强停容器:docker stop/ kill CONTAINER
删除容器:docker rm [OPTIONS] CONTAINER [CONTAINER...]
重命名容器:docker rename CONTAINER CONTAINER_NEW
进入容器:docker attach CONTAINER
执行容器命令:docker exec CONTAINER COMMAND
查看容器日志:docker logs [OPTIONS] CONTAINER
查看容器列表:docker ps [OPTIONS]
查看正在运行的容器:docker CONTAINER ls

可以是或者是 容器的名称 。
一文了解
show 和set导致线程死锁案例
哪些因素会导致慢查询?
-The End-
【docker查询mysql 有哪些版本的镜像_使用Docker安装MySQL】本公众号长期关注于数据库技术以及性能优化,故障案例分析 , 数据库运维技术知识分享,个人成长和自我管理等主题,欢迎扫码关注 。