下边做一下Docker的入门级别的学习。
是什么,怎么用,有什么好处。如果是进阶的话,真的要拿到工作环境中用,那就要明白使用后有什么问题,因为但凡是一个技术就有他的好处和弊端,所谓的学的好,是能够合理的掌控,权衡它的优略。
目录
三要素(1)有什么好处
先来讲一下有什么好处,因为我们在学习一个技术,使用一个技术的时候,往往是因为它能够给我额们解决问题,所以我们才愿意用它。
场景问题:
举个不恰当的例子,安装系统:每个人都需要安装一下操作系统,然后再在系统上安装不同的软件,然后有人为了省事,就直接用别人的镜像,那么别人电脑上有的,我就都有了,还不用我自己麻烦,要知道有些工具的安装是很费时费力的,甚至万一错了,都要重装系统。
在开发中,我们肯定有这样的需求,那就是需要统一我们开发人员的开发环境,不同的开发环境会有版本冲突的问题,就说我们导入别人的一个项目,很多时候都会有依赖的问题报错。每个人都安装一遍,同样也会花费很长时间,这时候Docker就站出来了,他的出现就是解决这个需要重复安装的问题,将一个安装好的软件,打包成一个镜像文件,然后可以很方便的给别人用。
三要素(2)Docker是什么?
接着上边的讲:Docker就是替我们打通道路的人。接下来看看是怎么做到的。
机器 A,上边已经装好了一些软件,我们可以将一个一个的软件打包成镜像,Docker 把我们打包好的镜像放在服务器上,机器B想要运行这个打包好的软件,只需要机器上装了Docker,然后就可以直接运行这个打包好的镜像了。并不需要自己再安装。每一个打包好的镜像,称为是一个容器。每个容器是一个软件,他们是相互隔离的。
并且我们不需要担心的是Docker的启动速度,它是秒,毫秒级别的。
注意点:需要发布到Linux机器上。
三要素(3)如何使用Docker
Docker的核心概念
先贴一张图:
Docker主机:安装了Docker程序的机器(可以安装在Linux上,可以安装在window上),中间红框部分。
Docker客户端:连接上Docker服务器。进行相关的操作。最左边的红框。
Docker仓库:存放我们打包好的镜像文件。可以有公共的仓库,大家都可以用,我们也可以自己搭建一个仓库。
Docker镜像:打包好的安装软件,可以是已经配置好的。
Docker容器:我们想要使用打包好的镜像,就要下载镜像,然后通过命令启动镜像,一启动就会创建一个容器。概括来说就是镜 像启动后的实例我们称为是一个镜像。容器的启动停止,就相当于是软件的安装和卸载,比方说我们想要安装五个 Tomcat,只需要运行上五次镜像文件,就会有五个容器。
Docker安装步骤
这里我在linux下安装docker,Docker要求Linux的内核3.10以上,也就是 centOS7,我在自己现有的虚拟机上玩了很长时间升级了 内核,结果还是不行。原来是centOS6的原因。
- 需要自己先做一个虚拟机,从网上搜教程就可以,让自己的虚拟机跑起来。并且能够访问到外网。(这个过程如果没做多linux的话,可能会吃点力,但是按照据教程也不难。自行解决这一块)
- 我贴一下我用的centOS7 链接:https://pan.baidu.com/s/1nJ0upnkrnhAqkqFQYw7nfA 提取码:pdjp
- 这里提一下,docker需要linux内核在3.10以上版本(查看版本信息命令是 uname -r),如果不再就 yum update
- linux下安装docker 命令是: yum install docker
- 安装完以后启动 docker: systemctl start docker
- 查看docker版本号 :docker -v
- 开机自己启动docker :systemctl enable docker
- 关闭docker :systemctl stop docker
- 另外说一下,因为版本的原因,我不能保证一定成功,如果出了问题,需要自己谷歌解决。
Docker使用——下载镜像操作
相关的操作:
- 确保docker是开着的,然后打开
- 查找我们想要的镜像:docker search 关键字
- 然后再拉下来就可以了:docker pull 名字 (docker pull 名字:版本号)
- 查看已经下载下来的镜像:docker images
- 删除已经下载下来的镜像:docker rmi 镜像id
- 查看更多版本信息:https://hub.docker.com/
- 当把镜像下载下来以后,就可以运行了。
Docker使用——下载镜像操作
- docker run --name 自己给这个软件起一个名字 -d 下载的镜像的名字:版本号
- docker ps 查看运行中的容器。
- 停掉容器:docker stop 容器id (docker ps 可以查id)
- 开启容器:docker start 容器id (docker ps -a 可以查所有容器)
- 删除r容器:docker rm 容器id(docker ps -a 可以查所有容器)
- 启动一个做了端口影射的tomcat : docker run -d -p 主机端口号 :容器内部端口号 镜像名字
关于正确的启动我们的应用,我们更多的应该是遵循官方给我们的指导:比方如何启动 mysql
https://hub.docker.com/_/mysql