当前位置: 首页 > news >正文

Docker-03.快速入门-部署MySQL

一.部署MySQL

如果我们使用传统的部署方法去部署MySQL,将会非常麻烦,但是如果使用Docker进行MySQL的部署,就会方便很多,只需一条命令就可以搞定。

docker run -d \--name mysql \-p 3306:3306 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123 \mysql

运行该命令,即可在linux上安装Mysql。

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

大家可以发现,当我们执行命令后,Docker做的第一件事情,是去自动搜索并下载了MySQL,然后会自动运行MySQL,我们完全不用插手,是不是非常方便。

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

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

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

说明:

  • 镜像:英文是image

  • 容器:英文是container

我们再次运行mysql的安装命令,我们会发现瞬间就安装成功了,这是因为我们已经下载了镜像。就不用下载了。镜像可以多次启动。 

 我们通过docker ps命令可以看到mysql1和mysql2都启动起来了

Docker会根据命令中的镜像名称自动搜索并下载镜像,那么问题来了,它是去哪里搜索和下载镜像的呢?这些镜像又是谁制作的呢?

Docker官方提供了一个专门管理、存储镜像的网站,并对外开放了镜像上传、下载的权利。Docker官方提供了一些基础镜像,然后各大软件公司又在基础镜像基础上,制作了自家软件的镜像,全部都存放在这个网站。这个网站就成了Docker镜像交流的社区:

https://hub.docker.com/

基本上我们常用的各种软件都能在这个网站上找到,我们甚至可以自己制作镜像上传上去。

像这种提供存储、管理Docker镜像的服务器,被称为DockerRegistry,可以翻译为镜像仓库。DockerHub网站是官方仓库,阿里云、华为云会提供一些第三方仓库,我们也可以自己搭建私有的镜像仓库。

官方仓库在国外,下载速度较慢,一般我们都会使用第三方仓库提供的镜像加速功能,提高下载速度。而企业内部的机密项目,往往会采用私有镜像仓库。

总之,镜像的来源有两种:

  • 基于官方基础镜像自己制作

  • 直接去DockerRegistry下载

 这些镜像大多数不是docker官方创建的,而是第三方软件创建的,如mysql,redis等。

我们执行docker run命令就会被我们的docker守护进行监听到,接着就回去镜像仓库中查找你所需要的镜像,然后进行下载。将其下载到本地docker。镜像包含了所需要的函数库,配置和依赖,因此是一个绿色免安装版本,可以直接运行。且一次下载以后可以多次运行。在运行镜像时docker会创建一个隔离的环境叫做容器。多个容器之间是相互隔离的。

同一个mysql可以进行多实例部署(多实例,就是一台linux上,同时运行多个mysql,当然是区别了不同的端口,例如3306、3307、3308。 运行三个mysql数据库),形成集群,每部署一个就是一个容器,相互之间没有干扰。当然也可以在一个服务器上部署多个不同应用的实例。这样也不会相互干扰。

有了docker,我们在部署时就忽略了安装,系统差异,应用干扰和系统干扰,节省了大量时间。

http://www.lryc.cn/news/608930.html

相关文章:

  • 介绍JAVA语言、介绍greenfoot 工具
  • 北邮:LLM强化学习架构Graph-R1
  • 【机器学习】线性回归算法详解:线性回归、岭回归、Lasso回归与Elastic Net
  • 02.Redis 安装
  • 13.Redis 的级联复制
  • kafka与其他消息队列(如 RabbitMQ, ActiveMQ)相比,有什么优缺点?
  • 《深入浅出RabbitMQ:从零基础到面试通关》
  • RabbitMQ面试精讲 Day 10:消息追踪与幂等性保证
  • 《软件测试与质量控制》实验报告三 系统功能测试
  • Flutter开发 dart异步
  • Spring lookup-method实现原理深度解析
  • [spring-cloud: 服务注册]-源码解析
  • 【Linux】linux基础开发工具(三) 版本控制器Git、调试器 - gdb/cgdb使用、一些实用的调试技巧
  • graph TD的规则
  • zookeeper持久化和恢复原理
  • 大模型智能体(Agent)技术全景:架构演进、协作范式与应用前沿
  • io_destroy系统调用及示例
  • Redis——运维篇
  • Linux | i.MX6ULL移植 Gdb+Gdbserver 调试(第十四章)
  • day50预训练模型 CBAM注意力
  • 蛇形卷积介绍
  • 实战案例:容器数据卷四部曲(三)目录数据卷
  • 【C++】面向对象编程:继承与多态的魅力
  • 对大脑功能连接进行功能注释
  • git配置公钥/密钥
  • FasrCGI
  • 【ROS2】常用命令
  • Python中的import和from...import有什么区别?
  • 北京-4年功能测试2年空窗-报培训班学测开-第六十六天
  • FFT/STFT/小波/HHT:振动诊断工具生死局,选错=灾难