Docker是什么?Docker安装MySQL示例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Docker是什么?Docker安装MySQL示例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4630字,纯文字阅读大概需要7分钟。
内容图文
一、Docker是什么?
Docker在英文中的意思是“码头工人”的意思,大家可以想象,在码头上有很多工人,他们正在搬运货物。首先将货物放入集装箱中,然后将集装箱放入货船上,货船将这些集装箱以及其中的货物运送到指定的目的地。
我们所讨论的Docker,是席卷一种全球的轻量级容器技术。
在2013年,dotCloud公司发布了一款名为Docker的开源软件,仅仅花了一年时间,Docker几乎动摇了传统虚拟技术的统治地位,越来越多的公司逐步开始使用Docker来替换现有的虚拟化技术。正因为Docker太红,就连dotCloud公司也因此改名Docker公司了,并基于Docker技术推出了一系列的相关生态产品。
谷歌、微软、亚马逊等公司率先在自己的平台上支持了Docker,随后国内阿里巴巴、腾讯、华为等龙头互联网企业也支持了Docker,还有大量的互联网与软件公司正在使用Docker构建自己的产品。包括笔者之前实习的好未来也是用Docker来开发,笔者也是从好未来开始接触、学习,运用Docker的。
Docker官网:https://www.docker.com/
说了半天还是不知道Docker是什么啊!那我们就用一些简单的例子来通俗的解释一下Docker是什么吧。
传统开发逻辑:由于开发需求,你需要安装mysql,传统的逻辑是什么?你会想到,如果是 windows 系统我们需要到mysql官网下载安装包,然后打开安装包一步一步安装,有时候还会遇到一些小问题。如果你是linux则需要到到官网下载tar包,然后解压,进行各种配置,还常常出现各种问题,不熟悉linux的朋友相信会很头痛吧。那如果是不是mysql呢?让你在一台机器上安装redis,rabbitmq,jenkins等等服务,是不是每一种服务,我们都需要去百度,google,然后照着博客来学习安装流程呢?这样未免太麻烦,就算你有这样的精力,公司也不允许这样low的效率。
Docker的开发逻辑:
安装mysql只需要两条指令:
docker pull mysql:5.7
docker run --name my_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
安装redis也只需要两条指令:
docker pull redis
docker run -d --name my_redis -p 6379:6379 redis --requirepass "123456"
天啊,以前繁琐的操作,这里就两条指令搞定。大家难看出安装mysql和redis第一步都是'docker pull',第二步都是'docker run'。其实安装所有服务都一样,都只需要两个步骤,第一步都是'docker pull',意思是从服务器拉取官方镜像,第二步'docker run',意思是启动新的容器,后面跟的参数是对容器的基本配置,具体什么意思我们后面再讨论。
看完上面的介绍,相信大家对Docker是用来干什么的有了初步的认识了。
二、Docker的安装与基本命令
我这里以centos 7为例子。如果你希望在windows 10上安装Docker,请确认你的系统是专业版,家庭版无法使用。
1、用yum直接安装Docker
yum install docker
2、启动Docker
systemctl start docker
3、设置Docker开机自启动
systemctl enable docker
4、查看所有镜像,可以看到现在镜像列表为空
docker images
三、Docker安装MySQL
1、以mysql为例子,我这里拉取mysql 5.7镜像
docker pull mysql:5.7
需要注意的是mysql是镜像名字,后面加 :5.7 表示指定版本号,5.7是镜像的tag标签。如果在拉取镜像是不指定tag,默认拉取最新版本,拉取镜像完成后,镜像的 tag 就会变成 lastest
不指定tag:
docker pull mysql
再次查看所有镜像:
docker images
这时我们发现docker中就有了两个镜像,一个tag是5.7,另一个tag是lastest。
2、启动一个mysql容器
docker run --name my_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
使用‘docker run’命令来启动容器,其中:
--name 用来指定容器名称
-p 指定端口映射,形式为“3306:3306”,前面的3306指代宿主机端口,后面的3306指代容器端口。这样我们访问服务器的3306端口,也就能访问到容器的3306端口了。
-e 设置环境变量,-e MYSQL_ROOT_PASSWORD=123456 为设置mysql的root访问密码为123456
-d 后台运行容器,并返回容器ID
最后加上“镜像名:tag”来指定用哪一个镜像启动容器,也可以用镜像的ID指定。
3、查看所有运行的容器
docker ps
可以看到mysql容器已经启动,并且映射到了宿主机的3306端口,我们可以使用 navicat 尝试连接一下。
4、navicat连接
可以看见,已经连接成功啦。如果你是自己的配置的主机记得开放3306端口,如果是阿里云等服务商的主机,记得添加3306安全组哦。
关于怎么样修改docker下mysql字符集为utf-8请参考我的另外一篇文章:
四、Docker容器与镜像的停止,删除
1、停止容器
使用 docker ps 先看看当前运行的容器:
停止MySQL容器,后面的的字符串代表容器id,也可以使用容器名称,下面两条命令等价。
docker stop ae511414271f
docker stop my_mysql
运行 docker stop 后他会自动返回被关闭的容器id ,表示成功停止容器。
再使用 docker ps 看看当前运行的容器:
如上图,目前已经没有容器在运行。如果你想查看所有容器,包括未启动的容器的话,需要使用如下命令:
docker ps -a
加入 -a 参数就可以查找到包含停止的所有容器了,如上图,mysql 的 STATUS 是退出状态。
2、删除容器
同样可以通过容器 id 或者容器名删除
docker rm ae511414271f
2、删除镜像
先使用 docker images 查看所有镜像
删除镜像的命令与删除容器相似,这需要加入参数 i ,可以通过 IMAGE ID 或者 REPOSITORY:TAG 指定,所以下面两条指令等价
docker rmi docker.io/mysql:5.7
docker rmi ae6b78bedf88
五、总结
docker 有很多用途,我这里仅仅介绍了基本概念与简单的使用。例如在项目持续集成中,我们可以配置Docker镜像私服,与 gitlab,jenkins 配合进行项目自动拉去代码,打包,发布。
如果文章表述有误,请在评论中提出。大家一起学习探讨。
参考书籍:轻量级微服务架构(上)——黄勇著
内容总结
以上是互联网集市为您收集整理的Docker是什么?Docker安装MySQL示例全部内容,希望文章能够帮你解决Docker是什么?Docker安装MySQL示例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。