走入Docker----基础知识详解(1)

一、什么是docker?

(1)Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
(2)一个完整的Docker有以下几个部分组成:
DockerClient客户端
Docker Daemon守护进程
Docker Image镜像
DockerContainer容器

(3)Docker 是基于Go语言实现的开源容器项目。利用操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化。它是内核级的虚拟化。期望达到使项目运行环境“一次封装,到处运行的目的”。
利用docker创建的运行环境叫做docker容器,容器是通过docker镜像创建的,docker镜像文件可以放在私有仓库中也可以放在共有仓库中。最大的公有仓库是官方Docker Hub。

二、为什么要使用docker?

2.1 docker容器虚拟化的好处

docker的发起人认为Docker在正确的地点、正确的时间顺应了正确的趋势----即高效地构建应用。现在开发者需要能方便地创建运行在云平台上的应用,也就是说应用必须能够脱离底层机器,而且同时必须是“任何时间任何地点”可获取的。因此,开发者们需要一种创建分布式应用程序的方式,这也是docker所能够提供的。
举个例子,当用户试图利用LAMP来运维一个网站。按照传统的做法,需要安装Apache、Mysql、Php以及他们所依赖的环境,分别对他们各自进行配置,大量的操作之后,还需要进行功能的测试,看是否可以正常工作,如果不正常,则意味着更多的时间代价和不可控的风险。而且,一旦需要服务器迁移,往往需要重新部署和调试,这往往会降低工作效率。
而Docker提供了一种更为聪明的方式,通过容器来打包应用,意味着迁移只需要在新的服务器上启动需要的容器就可以了。这无疑大大节约了宝贵时间,也降低了部署过程出现问题的风险。

2.1.1 什么是容器?

容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行,开发人员在自己笔记本上创建并测试好的容器,无须任何修改就能在生产系统的虚拟机,物理服务器或公有云机上运行。

2.2 Docker在开发和运维中的优势

对于开发和运维(DevOps)人员来说,希望一次性地创建或配置,可以在任意环境、任意时间让应用正常的运行,而Docker恰恰可以实现这一目标。
Docker在开发和运维过程中,具有如下几个方面的优势。

  • 更快速的交付和部署。使用Docker,开发人员可以使用镜像来快速构建一套标准的开发环境;开发完成后,测试和运维人员可以直接使用相同环境来部署代码。Docker可以快速创建和删除容器,实现快速迭代,大量节约开发、测试、部署的是时间。并且,各个步骤都有明确的配置和操作,整个过程全程可见,使团队更容易理解应用的创建和工作过程。
  • 更高效的资源利用。Docker容器的运行不需要额外的虚拟化管理程序支持,它是内核级的虚拟化,可以实现更高级的性能,同时对资源的额外需求很低
  • 更轻松的迁移和扩展。Docker容器几乎可以在任意平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。这种兼容性让用户可以在不同平台之间可以轻松地迁移应用。
  • 更简单的更新管理。使用Dockerfile,只需要小小的配置修改,就可以替代以往大量的更新工作。并且所有修改都以增量的方式进行分发和更新,从而实现自动化并且高效的容器管理

2.3Docker与虚拟机的比较

作为一种轻量级的虚拟化方式,Docker在运行应用上跟传统的虚拟机方式相比具有显著优势:

  • Docker容器很快,启动和停止可以在秒级实现,这相比传统的虚拟机方式要快得多
  • Docker容器对资源需求很少,一台主句上可以同时运行数千个Docker容器
  • Docker通过类似Git的操作来方便用户获取、分发和更新应用镜像,指令简明,学习成本较低
  • Docker通过Dockerfile配置文件来支持灵活的自动化创建和部署机制,提高工作效率。
    Docker容器技术与传统虚拟机技术的特性比较
    在这里插入图片描述

2.3 docker的特性

打包对象任何软件及依赖
硬件依赖容器无修修改便可运行在几乎所有的平台上(虚拟机、物理机、公有云、私有云)
隔离性资源、网络、库都是隔离的,不会出现依赖问题
自动化提供run、start、stop等标准化操作,非常适合自动化
高效性轻量级,能够快速启动和迁移
职责分工开发人员只需考虑怎么写代码,运维人员只需关心如何配置基础环境

三、 docker容器

docker容器就是docker镜像的实例
用户可以 通过命令启动、停止、移动或者删除容器,可以这么认为,对于应用软件,镜像是软件生命周期的构建和打包阶段,而容器是启动和运行阶段。

3.1How----容器是如何工作的

docker采用的是client/server架构,客户端向服务端发送请求,服务器负责构建、运行和分发容器。
在这里插入图片描述

3.2 容器的优势

那么对于开发人员:
容器意味着环境的隔离和可重复性,开发人员只需要为应用创建一次运行环境,然后打包成容器便可在其他机器上运行,另外,容器环境与所在的host环境是隔离的,就像虚拟机一样,当然更快更简洁
对于运维人员:
只需要配置好标准的环境,服务器就可以运行任何容器,这使得运维人员的工作变得更加高效,一致和可重复,容器消除了开发、测试生产环境的不一致性。

四、docker镜像

镜像是docker容器的基石,容器是镜像运行的实例,有了镜像才能启动容器
可将docker镜像堪称只读模板,通过它可以创建docker容器
例如某个镜像可能包含一个ubuntu操作系统,一个Apache、Http、Server以及用户开发的web应用

4.1 镜像生成的方式

1、从无到有开始创建镜像
2、下在并使用别人创建好的现成的镜像
3、在现有的镜像上创建镜像
可以将镜像的内容和创建步骤描述在一个文本文件中,这个文件被称为Dockerfile,通过执行docker build命令可以构建出docker镜像
在这里插入图片描述

五、docker仓库

registry是存放docker镜像的仓库,registry分为私有仓库和公有仓库两种。
docker pull 命令可以从registry下载镜像
docker run 命令则是先下载镜像(如果本地没有),再启动镜像

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值