saowu's Blog

What is docker ?

What is docker ?
2020-04-04 · 4 min read
Docker 日记

据“咳咳咳”学统计,学会了Docker你可以少死去好几百万只手也数不过来的脑细胞。

Docker是什么?

  • Docker 是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docker引擎的服务器上(包括流行的Linux机器、windows机器),也可以实现虚拟化。

Docker 核心概念

  • Docker 中有三个核心概念:ImageContainerRepository

容器

  • 容器(Container)是打包代码及其所有依赖项的标准软件单元,因此应用程序可以从一个计算环境快速可靠地运行到另一个计算环境。容器的存在离不开镜像的支持,他是镜像运行时的一个载体(类似于实例和类的关系)。依托 Docker 的虚拟化技术,给容器创建了独立的端口、进程、文件等“空间”,Container 就是一个与宿机隔离 “容器”。容器可宿主机之间可以进行 port、volumes、network 等的通信。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低

容器镜像

  • Docker容器镜像(Images)是一个轻量级的,独立的,可执行的软件包,其中包含运行应用程序所需的一切:代码,运行环境,系统工具,系统库和设置。容器镜像在运行时会成为容器,对于Docker容器,镜像会在Docker Engine上运行时成为容器。不论基础架构如何,容器化软件都可用于基于Linux和Windows的应用程序,始终运行相同。容器将软件与其环境隔离开来,并确保尽管开发和登台之间存在差异,但软件仍可以均匀运行。

容器仓库

  • Docker 的仓库和 git 的仓库比较相似,拥有仓库名、tag。在本地构建完镜像之后,即可通过仓库进行镜像的分发。常用的 Docker hub 有 https://hub.docker.com/ 、 https://cr.console.aliyun.com/ 等。

Docker特点

  • 标准: Docker创建了容器的行业标准,因此它们可以在任何地方移植
  • 轻量级:容器共享计算机的OS系统内核,因此不需要每个应用程序都具有OS,从而提高了服务器效率并降低了服务器和许可成本
  • 安全:应用程序在容器中更安全,并且Docker提供了业界最强大的默认隔离功能

Docker与虚拟机

虚拟机组织结构

  • 虚拟机(VM)是将一台服务器转变为多台服务器的物理硬件的抽象。虚拟机管理程序允许多个VM在单台计算机上运行。每个VM包含操作系统,应用程序,必要的二进制文件和库的完整副本-占用数十GB。VM也可能启动缓慢。

Docker组织结构

  • 容器是应用程序层的抽象,将代码和依赖项打包在一起。多个容器可以在同一台机器上运行,并与其他容器共享OS内核,每个容器在用户空间中作为隔离的进程运行。容器占用的空间少于VM(容器映像的大小通常为几十MB),可以处理更多的应用程序,并且需要的VM和操作系统更少。

Docker用处

  • 提供一次性的环境。 比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
  • 提供弹性的云服务。 因为 Docker 容器可以随开随关,很适合动态扩容和缩容。
  • 组建微服务架构。 通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。
Copyright © 2020 - 2024 saowu. All Right Reserved
Powered by Gridea