首页 >> 大全

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

2023-12-27 大全 32 作者:考证青年

在使用、学习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 的镜像文件,提示已经存在。

启动容器

sudo run --= --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=/data/my3306/my.cnf,dst=/etc/my.cnf \
--mount type=bind,src=/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

exec  -ti  a3b538b3404 /bin/bash

常用命令 运维镜像的常用命令

搜索镜像:docker  search  [OPTIONS]  TERM
上传镜像:docker push  [OPTIONS]  NAME[:TAG]
下载镜像:docker pull  [OPTIONS]  NAME[:TAG]
提交镜像:docker commit [OPTIONS]  CONTAINER NAME[:TAG]
构建镜像:docker build  [OPTIONS]  PATH
删除镜像:docker rmi [OPTIONS]  IMAGE  [IMAGE...]
增加镜像标签:docker tag SOURCE_IMAGE[:TAG]  TARGET_IMAGE[:TAG]
查看所有镜像:docker images  [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-

本公众号长期关注于数据库技术以及性能优化,故障案例分析,数据库运维技术知识分享,个人成长和自我管理等主题,欢迎扫码关注。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了