成长之路:Docker(一) 相关介绍

当我们在软件开发之前,最重要的一步就是环境配置。由于各个用户计算机环境的差别,有可能导致在自己的机器上可以运行,而其他人的机器不可运行。

故,用户要保证两件事:操作系统的设置,各种库与组件的安装。

当我们要换一台机器后,又要重新配置。

虚拟机

说Docker之前,需要先讲讲虚拟机。

虚拟机(virtual machine)就是代环境安装的一种解决方案。它可以在一种操作系统中运行另一种操作系统。而应用程序对此毫无感知,对于底层系统而言,它就是一个普通文件。

缺点:

  • 资源占用多
  • 冗余步骤多
  • 启动慢

Linux容器

Linux容器(LXC),不是模拟一个完整的操作系统,而是对进程进行隔离。可以是说在进程外面套了一个保护层。对于容器里面的进程来说,接触的各种资源都是虚拟的,从而实现与底层系统的隔离。

优点:

  • 启动快:其应用是底层系统的一个进程,启动容器相当于启动本机的一个进程。
  • 资源占用少
  • 体积小

Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真是的物理机上运行一样。也就是说,将应用与它需要运行的环境包装在一起。

用途

1)提供一次性的环境: 本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
2)提供弹性的云服务: 因为Docker容器可以随开随关,很适合动态扩容和缩容。
3)组建微服务架构: 通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

组成

一个完整的Docker有以下几个部分组成:
1)DockerClient(客户端)
2)Docker Daemon(守护进程)
3)Docker Image(镜像)
4)Docker Container(容器)

Docker使用客户端-服务器(C/S)架构模式,使用远程API来管理和创建Docker容器。Docker容器通过Docker镜像来创建。容器与镜像的关系类似于面向对象中的对象与类。

守护进程
Docker守护进程运行在一台主机上。用户并不直接和守护进程进行交互,而是通过Docker客户端间接和其通信。

Docker客户端
Docker客户端,实际上是docker的二进制程序,是主要的用户与Docker交互方式。它接收用户指令并且与背后的Docker守护进程通信,如此来回往复。

Docker镜像
Docker镜像是Docker容器运行时的只读模板,每一个镜像有一系列的层(layers)组成。Docker 使用 UnionFS 来将这些层联合到单独的镜像中。UnionFS 允许独立文件系统中的文件和文件夹(称之为分支)被透明覆盖,形成一个单独连贯的文件系统。正因为有了这些层的存在,Docker 是如此的轻量。当你改变了一个 Docker 镜像,比如升级到某个程序到新的版本,一个新的层会被创建。因此,不用替换整个原先的镜像或者重新建立(在使用虚拟机的时候你可能会这么做),只是一个新 的层被添加或升级了。现在你不用重新发布整个镜像,只需要升级,层使得分发 Docker 镜像变得简单和快速。

Docker仓库
Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。同样的,Docker 仓库也有公有和私有的概念。公有的 Docker 仓库名字是 Docker Hub。Docker Hub 提供了庞大的镜像集合供使用。这些镜像可以是自己创建,或者在别人的镜像基础上创建。Docker 仓库是 Docker 的分发部分。

Docker容器
Docker 容器和文件夹很类似,一个Docker容器包含了所有的某个应用运行所需要的环境。每一个 Docker 容器都是从 Docker 镜像创建的。Docker 容器可以运行、开始、停止、移动和删除。每一个 Docker 容器都是独立和安全的应用平台,Docker 容器是 Docker 的运行部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值