docker创建mysql环境(docker上部署MySQL的示例)
docker创建mysql环境
docker上部署MySQL的示例目录
- 1 容器云是什么?
- 2 docker简介
- 3 使用docker安装MySQL
容器云的概念现在很火,现在很多公司都把MySQL部署在容器上,开始今天内容之前,我们先来看看容器云的概念吧。
1 容器云是什么?要理解容器云的概念,首先需要了解容器,容器的介绍过程中,需要引入虚拟机来进行对比。
虚拟机:
VMware或者Virtual BoX这种虚拟机想必大家在日常工作中都有用到过,它是模拟计算机操作系统的软件,你可以在windows计算机上安装Virtual BoX软件,然后在Virtual Box上安装Centos或者Ubuntu这种Linux操作系统,从而在一台机器上运行多种类型的多个操作系统,让我们开发测试工作变得很方便。
虚拟机的缺点是需要消耗大量资源,每个虚拟机都需要单独分配内存和磁盘空间,还要消耗CPU资源以及很多底层硬件资源,如果你只是在上面用程序跑了一个hello world,那么会造成资源的大量浪费。
容器:
容器的出现,就是为了解决这个问题,它是一种更加轻量,更加灵活的虚拟化处理技术,它将一个应用程序所需要的所有资源打包在一起,包含应用程序的code源码、依赖库以及操作系统,这让应用程序在任何地方都可以轻易的运行,不再受到环境的制约。
和虚拟机相比,容器更加轻量、可移植性更好、成本更低,更高效。
容器云可以理解为云上的容器技术服务。
2 docker简介docker是一个开源的应用容器引擎,我们可以将它理解为一个工具,它基于go语言开发,并且兼容apache2.0协议,它可以将应用程序及其依赖(如配置文件等)打包到容器中。
除此之外,它兼容多种环境,可以被部署在在笔记本电脑,内部服务器,公共云或私有云,可移植性很好,部署也非常灵活,解决了多种环境下的兼容性问题。
Docker 包括三个基本概念:
镜像(Image)
容器(Container)
仓库(Repository)
这三部分组成了Docker的整个生命周期,如上图所示。
docker镜像包含了文件系统,类似于虚拟机的镜像,它是只读的模板。
docker容器是由镜像实例化而来的,这和我们学习的面向对象的概念十分相似,我们可以把镜像想象成类,把容器想象成类经过实例化后的对象,这样就非常好理解镜像和容器的关系了。
docker仓库:类似与代码仓库,是Docker集中存放镜像文件的场所
这个关系可以更加清楚的表述为:
下面我们来看docker的安装:
1、安装所需要的软件包,其中yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2
yum install-y yum-utils yum install-y device-mapper-persistent-data yum install-y lvm2
2、设置稳定的docker仓库
yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、安装Docker Engine-Community、
yum install docker-ce docker-ce-cli cotainerd.io
此时,Docker 安装完默认未启动。并且已经创建好 docker 用户组,但该用户组下没有用户。
3 使用docker安装MySQL使用docker安装mysql服务非常简单,总体步骤就下面几步:
1、下载MySQL镜像
可以登录到docker的官方仓库中寻找mysql的镜像,网址如下:https://hub.docker.com/_/mysql?tab=tags
也可以直接使用docker的命令去下载MySQL镜像
yum pull mysql:5.7.16
上面的命令表示我们要下载MySQL5.7.16的镜像。如果我们不写最后的版本号,则默认拉取最新的MySQL版本镜像
2、启动MySQL。
拉取完毕之后,我们可以通过下面的命令来启动MySQL实例:
docker run -itd --name mysql_5716 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=yeyazhou mysql_5716
其中:
-i:以交互模式运行容器
-t:为容器重新分配一个伪输入终端
-d:后台运行容器
-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
MYSQL_ROOT_PASSWORD=yeyazhou:设置 MySQL 服务 root 用户的密码。
3、查看容器的运行状态
container id:容器的id号
其他信息包括容器的源镜像,创建时间,状态,端口映射信息,容器名字等。
4、进入容器查看
首先我们使用命令进入容器的交互式命令行:
docker exec -it mysql_5716 /bin/bash
运行结果如下
root@8c388ccfb761:/# ls -l total 72 drwxr-xr-x 1 root root 4096 Nov 8 2016 bin drwxr-xr-x 2 root root 4096 Sep 12 2016 boot drwxr-xr-x 5 root root 360 Aug 11 11:41 dev drwxr-xr-x 2 root root 4096 Nov 8 2016 docker-entrypoint-initdb.d lrwxrwxrwx 1 root root 34 Nov 23 2016 entrypoint.sh -> usr/local/bin/docker-entrypoint.sh drwxr-xr-x 1 root root 4096 Aug 11 11:41 etc drwxr-xr-x 2 root root 4096 Sep 12 2016 home drwxr-xr-x 1 root root 4096 Nov 8 2016 lib drwxr-xr-x 2 root root 4096 Nov 4 2016 lib64 drwxr-xr-x 2 root root 4096 Nov 4 2016 media drwxr-xr-x 2 root root 4096 Nov 4 2016 mnt drwxr-xr-x 2 root root 4096 Nov 4 2016 opt dr-xr-xr-x 104 root root 0 Aug 11 11:41 proc drwx------ 1 root root 4096 Aug 11 11:49 root drwxr-xr-x 1 root root 4096 Nov 8 2016 run drwxr-xr-x 2 root root 4096 Nov 4 2016 sbin drwxr-xr-x 2 root root 4096 Nov 4 2016 srv dr-xr-xr-x 13 root root 0 Jul 19 02:47 sys drwxrwxrwt 1 root root 4096 Aug 11 11:41 tmp drwxr-xr-x 1 root root 4096 Nov 23 2016 usr drwxr-xr-x 1 root root 4096 Nov 8 2016 var
可以看到进入了容器交互式命令行。前面的root@8c388ccfb761中@符号后面的字符串就是我们的容器ID。
5、使用连接串连接MySQL
root@8c388ccfb761:/usr/local# mysql -uroot -pyeyazhou -h127.0.0.1 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 16 Server version: 5.7.16 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)
6、启动另外一个MySQL容器
[root@VM-0-14-centos ~]# docker run -itd -p 3307:3306 --name mysql_5716_2 -e MYSQL_ROOT_PASSWORD=yeyazhou mysql:5.7.16 e5e0f9a14462261d01307c4d0891587acce90e4ffd33e434878f311bf98d4f22 [root@VM-0-14-centos ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e5e0f9a14462 mysql:5.7.16 "docker-entrypoint.s…" 8 seconds ago Up 6 seconds 0.0.0.0:3307->3306/tcp mysql_5716_2 8c388ccfb761 mysql:5.7.16 "docker-entrypoint.s…" 25 hours ago Up 25 hours 0.0.0.0:3306->3306/tcp mysql_5716
以上就是docker上部署MySQL的示例的详细内容,更多关于docker上部署MySQL的资料请关注开心学习网其它相关文章!
- jenkins集成docker自动部署(详解docker部署Jenkins新手使用教程)
- docker导出日志(excel导出在docker环境中总是失败的问题)
- 如何删除docker中已停止的容器(一条命令重启所有已停止的docker容器操作)
- docker root权限(docker 免root权限登陆的解决方案)
- docker安装java8(docker安装java环境的实现步骤)
- docker怎么搭建私有服务器(docker搭建CMS点播系统带播放器功能)
- docker中搭建jmeter测试环境(借助Docker搭建JMeter+Grafana+Influxdb监控平台的详细教程)
- docker的解剖(再见 Docker如何5分钟转型 containerd)
- idea集成docker-compose(IDEA 集成 docker 实现远程部署的详细步骤)
- docker端口映射怎么添加(Docker 动态修改容器端口映射的方法)
- springboot与docker(详解SpringBoot项目docker环境运行时无限重启问题)
- docker容器与宿主机通信(docker容器与宿主机的数据交互方式总结)
- docker清理占用空间(docker清理大杀器/docker的overlay文件占用磁盘太大的解决)
- dockerfile构建镜像两种方式(通过Dockerfile构建Docker镜像的方法步骤)
- docker创建mysql环境(docker上部署MySQL的示例)
- 如何查看本机docker的安装目录(使用rpm安装指定版本docker1.12.6的详细步骤)
- 吐槽完《弧光大作战》之后,我们和设计师聊了聊魔兽首款手游的立项初衷和未来(吐槽完弧光大作战之后)
- 魔兽争霸3自定义战役少年杰雷 2(魔兽争霸3自定义战役少年杰雷)
- 今日菜价 芥兰涨幅最高 1.33 ,花菜降幅最高 3.10(今日菜价芥兰涨幅最高)
- 今日菜价 椰菜涨幅最高 3.25 ,水空心菜降幅最高 2.58(今日菜价椰菜涨幅最高)
- 今日菜价 红三鱼涨幅最高 4.41 ,黄鳝降幅最高 5.06(红三鱼涨幅最高)
- 今日菜价 西生菜涨幅最高 6.19 ,生菜降幅最高 5.38(西生菜涨幅最高)
热门推荐
- 织梦dedecms优化安全设置指南(DedeCms V5.5 性能优化方法分享)
- 云服务器都包括什么(云服务器有什么优势?)
- 如何用tomcat部署web项目(一文搞懂如何部署启动多个tomcat并移植项目)
- 阿里云跟腾讯云的对比(阿里云、腾讯云的恩怨情仇)
- thinkphp导入excel(Yii框架使用PHPExcel导出Excel文件的方法分析改进版)
- JavaScriptSerializer对Json对象的序列化和反序列化
- 阿里云负载均衡垂直扩容(阿里云负载均衡SLB安装SSL证书的方法)
- vue页面关闭前的执行(Vue 页面监听用户预览时间功能的实现代码)
- html5播放代码(html5 video全屏播放/自动播放的实现示例)
- laravel框架详解(laravel 5.3 单用户登录简单实现方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9