文章目录

  • 1、应用场景
  • 2、解决方案
  • 3、docker和虚拟机的对比
  • 4、仓库(Respository)
  • 5、镜像(Image)
  • 6、容器(Container)
  • 7、各个组件间的关系
  • 8、docker运维流程图
  • 9、思维导图


1、应用场景

  传统的项目部署每部署一台机器就需要配置一次环境和项目的依赖,部署起来比较麻烦。

相关链接:docker中文社区

2、解决方案

  • 在宿主机上安装虚拟机软件,安装多个Linux系统,每个系统安装部署不同的项目。
  • Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
    Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
    容器是完全使用沙箱机制,且容器性能开销极低。

虚拟机是占用宿主机内存的,一旦虚拟机过多就会消耗宿主机性能,不推荐使用。

3、docker和虚拟机的对比

  • docker 启动快速属于秒级别。虚拟机通常需要几分钟去启动
  • docker 需要的资源更少,docker 在操作系统之上进行虚拟化, docker 容器和内核交互,几乎没有性能损耗,性能优于通过 Hypervisor 层与内核层的虚拟化
  • docker 更轻量,docker 的架构可以共用一个内核与共享应用程序库,所占内存极小。同样的硬件环境,docker 运行的镜像数远多于虚拟机数量,对系统的利用率非常高
  • 与虚拟机相比,docker 隔离性更弱,docker 属于进程之间的隔离,虚拟机可实现系统级别隔离

4、仓库(Respository)

  Docker 仓库是集中存放镜像文件的场所。镜像构建完成后,可以很容易的在当前宿主上运行,但是, 如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry (仓库注册服务器)就是这样的服务。
  通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本 。我们可以通过<镜像名>:<标签>的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。
比喻:图纸档案室

5、镜像(Image)

  Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。
  image 文件是通用的,一台机器的 image 文件拷贝到另一台机器,照样可以使用。一般来说,为了节省时间,我们应该尽量使用别人制作好的 image 文件,而不是自己制作。即使要定制,也应该基于别人的 image 文件进行加工,而不是从零开始制作。通常可以通过docker file来构造image镜像。
比喻:汽车图纸

6、容器(Container)

  Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例,容器是可以修改的,可以将容器当前的状态保存到对应的镜像中。
比喻:汽车

7、各个组件间的关系

容器技术 docker 容器技术 docker master与worker_Docker

8、docker运维流程图

容器技术 docker 容器技术 docker master与worker_docker_02

9、思维导图

容器技术 docker 容器技术 docker master与worker_虚拟化_03