docker是什么?
- 有一种情况: 就是我们在本地跑是正常的,但是我们部署之后就出现跑不起来了,这一般都是因为环境和配置的原因
- 为了解决这个问题,将软件直接带环境安装,也就是说,开发直接将在它的电脑上能正常运行的所有东西直接放到容器中,运维直接操作这个整套东西,就不会出现上面的问题了.
Docker理念
- Dcoker是基于Co语言实现的云开源项目,其主要目标是"Build, Ship and Run Any App, Anywhere",也就是通过对应用组件的封装,分发,部署,运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等)及其运行环境能够做到"一次封装,到处运行!"
- 解释一下: docker的图标就是一个鲸鱼,然后背上有很多集装箱,可以这里理解: 比如说我开发用到了redis3.0,mysql5.7,我怕运维在部署的时候由于兼容性问题部署失败跑步起来,我就把这些软件环境分别放在几个集装箱里面,然后build成一个镜像文件(也就是说每个镜像文件里面都有这几个集装箱,每个集装箱就是你本地软件的一个克隆或者说镜像),之后我们直接把这四个集装箱放在docker上面跑(就好比鲸鱼背上有四个集装箱),此时运维只需要安装一个docker(也就是那条鲸鱼就ok了)
- 总的来说,docker是一个解决了运行环境和配置问题的容器,方便做持续继承并有助于整体发布的容器虚拟化技术
Docker的基本组成
镜像(image)
- 镜像就是一个只读的模板,可以用来创建Docker容器,一个镜像可以创建多个容器
- 例如: Person p = new Person()中的Person类就是一个镜像,而容器就是实例对象p
容器(container)
- 容器是镜像的运行实例(比如上面的new Person()),每个容器都是一个鲸鱼背上的集装箱,Docke利用容器独立运行一个或一组应用
- 容器可以被启动,开始,停止,删除,每个容器是相互隔离的,保证安全的
- 可以把容器当成一个简易版的linux环境
仓库(repository)
- 仓库是集中存放镜像文件的地方
- 注意区分仓库和仓库注册服务器,后者是用来存放仓库的,前缀是用来存放镜像的
- 目前最大的公有仓库是docker hub