Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >在docker中运行mysql实例

在docker中运行mysql实例

作者头像
陈灬大灬海
发布于 2019-03-29 07:41:47
发布于 2019-03-29 07:41:47
4K00
代码可运行
举报
运行总次数:0
代码可运行

Docker是一种新兴的虚拟化技术,能够一定程度上的代替传统虚拟机。下图是容器跟虚拟机的对比

对docker有个大致了解,学习docker断断续续,虽说学习不能急于求成,但断断续续学的话,浪费的碎片化时间也是不少的。

学习docker如果不愿意看文章可以看慕课网的一个免费的视频讲解,入门完全ok。

可以在docker hub上注册个账号,构建自己的镜像放到hub上,以便复用

docker hub地址

我的地址

慕课网学习地址

年前给公司的同事培训过一次学习mysql,在阿里云服务器上使用docker给每个同事都搭建了一个msyql运行环境,差点没跑起来,

一个运行起来的空的mysql容器占用了约200M内存,free -h命令可以查看内存使用情况

慕课网手记 (培训的资料准备笔记)

总结下使用docker搭建mysql实例的过程

我的是centos系统

查看linux版本可以通过下面命令进行查看 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat /proc/version

安装docker,参考 https://blog.csdn.net/u010046908/article/details/79553227

安装mysql,可以通过search命令查看仓库的mysql的各个版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker search mysql

通过pull命令进行拉去镜像操作,默认拉去的是latest版本,可以通过冒号来下载指定版本,如想下载5.7的mysql

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker pull mysql:5.7

 具体有哪些版本可以查看hub,如下图

现在下来后可以通过 docker images 命令查看下载的镜像

想运行mysql,把它放到容器里面运行下就ok(貌似说的不咋合理)

运行直线需要做一些配置,比如数据库data的存放位置,以及自定义的一些配置,比如mysql默认是区分大小写的

我是在当前的用户下面进行操作的,如下

创建一个data文件夹用于存放mysql的表结构,数据等信息

创建一个my.cnf文件来进行自定义参数设置,内容如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[mysqld]
user=mysql
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
lower_case_table_names=1
event_scheduler=ON
default-time-zone = '+8:00'
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
event_scheduler=ON 表示开启事件支持
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
lower_case_table_names=1 表示数据库不区分大小写
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
default-time-zone = '+8:00' 表示使用中国时区

ok,准备就绪,启动干就完了。

具体命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -d -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456 --name cmysql -v /home/chy/mysql/config/my.cnf:/etc/mysql/my.cnf -v /home/chy/mysql/db:/var/lib/mysql mysql:5.7

各个参数说明

  • run:运行一个容器
  • -d:看做做守护线程(Daemon)
  • -p:进行端口映射,用于暴露给外界让其访问
  • -e:初始化root用户的密码
  • --restar=always:自动重启,比如服务器突然断电,重启服务器之后不需要你重新手动启动
  • --name:自定义容器名称
  • -v:挂载。容器里面的数据你是不能直接访问的,但是你可以将可见目录挂载上去,这样就可以访问了(解释的不咋到位)

启动成功之后会出现一个随机字符串,表示容器的id

可以通过docker ps查看,我是启动了两个。docker ps -a 查看所有容器

启动之后,由于进行了端口映射,可以通过客户端工具入sqlyog,Navicat都可以进行连接

如果想进入容器进行操作,可以通过如下命令

要想退出使用exit,快捷键Ctrl+d

删除容器可以通过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker rm cmysql

当然了,前提是容器需要关闭,关闭的命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker stop cmysql

一样的道理,删除镜像也需要前提条件,那就是被依赖的容器删除了才能进行删除镜像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker rmi <image id>

ok,到位, 好记性不如烂笔头,特此总结下。

补充些docker基础概念知识

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口

镜像(Image)

镜像,从认识上简单的来说,就是面向对象中的类,相当于一个模板。从本质上来说,镜像相当于一个文件系统。Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

容器(Container)

容器,从认识上来说,就是类创建的实例,就是依据镜像这个模板创建出来的实体。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。

仓库(Repository)

仓库,从认识上来说,就好像软件包上传下载站,有各种软件的不同版本被上传供用户下载。镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Docker安装mysql
先给大家说一下什么是docker镜像,小优的理解就是就是可以运行的产物,但是是个集合。比如w7操作系统(只是一个操作系统)
猿码优创
2019/07/27
2.1K0
如何用 Docker 安装运行 mysql?
默认读者已经对 docker 会一些简单操作,比如会查看 container 列表、删除 container 之类的简单管理命令。
前端西瓜哥
2022/08/26
2.5K0
如何用 Docker 安装运行 mysql?
Docker实操:安装MySQL5.7详解(保姆级教程)
Docker Hub中MySQL介绍:https://hub.docker.com/_/mysql
不惑
2023/11/10
26.6K5
Docker实操:安装MySQL5.7详解(保姆级教程)
MySQL在Docker环境下运行基础
墨墨导读:MySQL在Docker环境下运行的基础操作,本文从Docker介绍、安装Docker、MySQL安装部署几个方面展开介绍。
数据和云
2020/09/04
1.3K0
【docker专题_07】docker搭建Mysql数据库
2.拉取mysql,不选择版本号,默认拉取lastest最新的(tips:这个最新指的是docker-hub中的最新)
夏之以寒
2024/03/04
1720
统信服务器操作系统【docker 介绍及部署安装】
Docker是一个基于go语言开源的应用容器引擎,它允许开发者将应用及其依赖打包到一个可移植的容器中,然后发布到任何支持Docker的Linux或Windows操作系统上。Docker基于内核的轻量级虚拟化技术,使用沙箱机制,容器之间相互隔离。通过容器来打包应用、解耦应用和运行平台Docker 可以快速创建和删除容器,实现快速迭代,节约开发、测试及部署的时间。
Kevin song
2024/05/11
2.2K0
统信服务器操作系统【docker 介绍及部署安装】
记录Docker部署官方 MySQL5.7
chmod 750 /home/gahc/data/mysql/conf/my.cnf
青丝束马尾
2024/05/31
3030
记录Docker部署官方 MySQL5.7
基于Docker的持续集成方案(安装和配置MySql) - Part.3
这篇文章介绍了使用Docker安装MySql数据库的操作步骤,以及安装完成后如何对MySql进行配置。
张子阳
2018/09/30
1.2K0
基于Docker的持续集成方案(安装和配置MySql) - Part.3
Docker
通过dockerfile构建镜像: docker build -f dockerfile文件路径 -t 镜像名称:版本
六个周
2022/10/28
6100
Docker
Django应用容器化
三大核心要素:镜像(Image)、容器(Container)、仓库(Registry)
cuijianzhe
2022/06/14
8210
Django应用容器化
Docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。什么是沙箱:Sandboxie(又叫沙箱、沙盘)即是一个虚拟系统程序,允许你在沙盘环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除。它创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。 在网络安全中,沙箱指在隔离环境中,用以测试不受信任的文件或应用程序等行为的工具。
xiaozhangStu
2023/08/23
2820
Docker-Compose安装Java Web实例
本文参考: docker学习笔记之五:进阶实战--mysql+tomcat Docker-Compose的介绍可参考:Docker学习——Docker 三剑客(七)
wuweixiang
2018/12/19
1.9K0
独家 | 通过Docker技术在macOS上部署3实例MGR环境
自从有了Docker,各种环境部署都简单从容起来,还记得我们曾经分享过:在macOS 上部署Oracle数据库环境,其实MySQL的环境部署起来同样得心应手。 前提条件,已经在自己的macOS操作系统
数据和云
2018/03/08
1.5K0
独家 | 通过Docker技术在macOS上部署3实例MGR环境
docker学习入门篇
docker官网: www.docker.com dockerhub官网: hub.docker.com
鹅厂老五
2024/06/02
4.8K0
Docker 软件安装
tomcat 版本网址:https://registry.hub.docker.com/_/tomcat (opens new window)
用户9615083
2022/12/25
1.7K0
Docker 软件安装
Docker常用安装
Navicat 也可以连接,直接新建一个新的链接即可,由于我的是阿里云上跑的docker,所以主机地址填IP就行了
玖柒的小窝
2021/10/06
3190
Docker常用安装
Docker搭建MySQL服务
前面我们已经安装好了Docker,也简单了解了Docker。那么我们可以尝试搭建一个MySQL服务。
双面人
2019/05/21
2K0
分布式部署:第三章:Docker、MySQL、tomcat、Nginx、Redis部署
在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。
Java廖志伟
2022/09/28
1.2K0
分布式部署:第三章:Docker、MySQL、tomcat、Nginx、Redis部署
docker入门(利用docker部署web应用)[通俗易懂]
更新:随手写的一篇博客能收获这么多赞真是挺开心的,不过现在博主很忙,博主本人主要也是从事Java方向对docker暂时没有更深的理解了,写这个目的也是为了自己复习,恕不能对出现问题的同学进行答疑了,当然如果哪里写的有问题还是可以提一下。
全栈程序员站长
2022/09/01
2.6K0
Docker学习
其实每个Linux的系统都是由内核 + 系统应用组成。 每个系统的内核其实都是一样的,只是系统应用不同,系统自带的函数库却不相同, 所以不同的操作系统之间不能够兼容。 Docker将用户程序和所需要调用的系统函数库一起打包。
用户11097514
2024/05/31
3650
Docker学习
相关推荐
Docker安装mysql
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验