使用Docker快速部署MySQL

部署MySQL

使用Docker安装,仅仅需要一步即可,在命令行输入下面的命令

bash 复制代码
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123456 \
  mysql

MySQL安装完毕!通过任意客户端工具即可连接到MySQL.

当我们执行命令后,Docker做的第一件事情,是去自动搜索并下载了MySQL,然后会自动运行MySQL,我们完全不用插手。

而且,这种安装方式你完全不用考虑运行的操作系统环境,它不仅仅在CentOS系统是这样,在Ubuntu系统、macOS系统、甚至是装了WSL的Windows下,都可以使用这条命令来安装MySQL。

要知道,不同操作系统下其安装包、运行环境是都不相同的 !如果是手动安装,必须手动解决安装包不同、环境不同的、配置不同的问题

而使用Docker,这些完全不用考虑。就是因为Docker会自动搜索并下载MySQL。注意:这里下载的不是安装包,而是镜像。 镜像中不仅包含了MySQL本身,还包含了其运行所需要的环境、配置、系统级函数库。因此它在运行时就有自己独立的环境,就可以跨系统运行,也不需要手动再次配置环境了。这套独立运行的隔离环境我们称为容器

说明:

  • 镜像:英文是image

  • 容器:英文是container

因此,Docker安装软件的过程,就是自动搜索下载镜像,然后创建并运行容器的过程。

总结:

Docker本身包含一个后台服务,我们可以利用Docker命令告诉Docker服务,帮助我们快速部署指定的应用。Docker服务部署应用时,首先要去搜索并下载应用对应的镜像,然后根据镜像创建并允许容器,应用就部署完成了。

命令解读

解读:

  • docker run -d :创建并运行一个容器,-d则是让容器以后台进程运行

  • --name mysql : 给容器起个名字叫mysql,你可以叫别的

  • -p 3306:3306 : 设置端口映射。

    • 容器是隔离环境 ,外界不可访问。但是可以将**宿主机端口映射容器内到端口**,当访问宿主机指定端口时,就是在访问容器内的端口了。

    • 容器内端口往往是由容器内的进程决定,例如MySQL进程默认端口是3306,因此容器内端口一定是3306;而宿主机端口则可以任意指定,一般与容器内保持一致。

    • 格式: -p 宿主机端口:容器内端口,示例中就是将宿主机的3306映射到容器内的3306端口

  • -e TZ=Asia/Shanghai : 配置容器内进程运行时的一些参数

    • 格式:-e KEY=VALUE,KEY和VALUE都由容器内进程决定

    • 案例中,TZ=Asia/Shanghai是设置时区;MYSQL_ROOT_PASSWORD=123是设置MySQL默认密码

  • mysql : 设置镜像名称,Docker会根据这个名字搜索并下载镜像

    • 格式:REPOSITORY:TAG,例如mysql:8.0,其中REPOSITORY可以理解为镜像名,TAG是版本号

    • 在未指定TAG的情况下,默认是最新版本,也就是mysql:latest

相关推荐
tb_first9 分钟前
k8sday11服务发现(2/2)
docker·云原生·容器·kubernetes·k8s
JSON_L30 分钟前
MySQL 加锁与解锁函数
数据库·mysql
发愤图强的羔羊1 小时前
Docker 搭建 SVN 服务器
docker
为了摸鱼而战1 小时前
Dockerfile知识点梳理,你要搞懂的都在这
docker
Clownseven2 小时前
Docker+Nginx+Node.js实战教程:从零搭建高可用的前后端分离项目
nginx·docker·node.js
MonKingWD2 小时前
MySQL事务篇-事务概念、并发事务问题、隔离级别
数据库·后端·mysql
zxcxylong2 小时前
almalinux9.6系统:k8s可选组件安装(1)
云原生·容器·kubernetes·metrics·almalinux·hpa·vpa
似水流年流不尽思念5 小时前
MySQL 的 MVCC 到底解决了幻读问题没有?请举例说明。
mysql·面试
秋难降6 小时前
零基础学SQL(八)——事务
数据库·sql·mysql
Starry_hello world6 小时前
MySql 表的约束
数据库·笔记·mysql·有问必答