Docker学习之基本概念

Docker学习之基本概念

作为一个后端noder,不了解docker有点说不过去,这节开始,学习一些docker层面的东西。

什么是docker

Docker最初是dotCloud公司创始人Solomon Hykes在法国期间发起的一个公司内部项目,它是基于dotCloud 公司多年云服务技术的一次革新,并于2013年3月以Apache2.0授权协议开源,主要项目代码在GitHub上进行维护。Docker项目后来还加入了Linux基金会,并成立推动开放容器联盟(OCI)。

Docker使用Google公司推出的Go语言进行开发实现。在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极 大的简化了容器的创建和维护。使得Docker技术比虚拟机技术更为轻便、快捷。

传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程 直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

相比传统虚拟技术优点

  • 更高效的系统资源利用
  • 更快的启动时间
  • 一致的运行环境
  • 持续集成、交付,DevOps友好
  • 更轻松的维护、拓展

基本概念

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

镜像

操作系统分为内核和用户空间,对linux,内核启动后,会挂载root文件系统为其提供用户空间支持。而docker镜像就好比这种root文件系统,提供容器运行时的程序、资源、配置、库等文件。镜像不包含任何动态东西,一旦镜像构建完成之后,便不会被改变。

docker容器

容器就好比一个实例化的镜像,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等等。

容器的实质是进程。不过容器的进程是运行在一个隔离的环境中,运行在属于自己的独立的命名空间。所以在容器内进行的文件操作等,在宿主环境下是不可见的。

docker仓库

镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry就是这样的服务。

一个Docker Registry中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。

通常,一个软件会放在一个仓库,仓库下的标签分别对应该软件的不同版本镜像,比如ubuntu:14.04,ubuntu是仓库名,14.04是标签名。通过<仓库名>:<标签>的格式来指定具体是这个软件哪个版本的镜像。如果不指定标签,则以latest作为默认标签。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CSDN技术头条

如何解决容器网络性能及复杂网络部署问题?

近两年,容器已经随着 Docker 技术的传播火遍全球,现在已经有越来越多的企业用户在开发、测试甚至生产环境中开始采用 Docker 等容器技术。 然而,目前主...

64010

Docker 的五大优点:持续部署、版本控制、可移植性、隔离性和安全性

我相信 Docker 不需要我过多介绍,它是目前最热门的开源项目之一。您可以使用 Docker 在容器中添加一个抽象层以部署不同的应用程序。在 Docker 生...

4388
来自专栏编程坑太多

『中级篇』Kubenetes简介(60)

PS:了解我的老铁都知道,概念讲的少,更多重在实践,通过实践更好的理解概念,从下次开始怼k8s的环境和集群。如果跟我一起学的老铁,应该可以感受的到,在学习doc...

2273
来自专栏云计算

OpenShift的容器镜像(第1部分):目标

本文来源于2017 EMEA (Europe, the Middle East and Africa,欧洲,中东和非洲) 红帽技术交流会议的会议记录,与会者包括...

2786
来自专栏云计算D1net

为什么Docker会受欢迎?看完这些才恍然大悟

Docker不是唯一的容器平台,也不是第一个推出的。其他框架,如OpenVZ和LXC,从20世纪20年代中期诞生。而其他类似容器的技术,如FreeBSD更进一步...

3456
来自专栏云计算

Docker带来的五大益处:CI,版本控制,可移植性,隔离性和安全性

Docker的跨环境一致性在开发界已经获得了广泛认可。通常情况下,开发阶段和正式发布的环境之间总会有细微的差异。除非你拥有自己的私有仓库,并严格检查。这些差异可...

3529
来自专栏从零开始的linux

初识docker

docker使用go语言开发,基于apache2.0协议 容器虚拟化 ? 传统虚拟化 ? Docker的优势 启动非常快,秒级实现 资源利用率很高,一台机器可以...

3745
来自专栏Debian社区

Linux 容器 vs 虚拟机 — 谁更胜一筹

自从 Linux 上的 容器 变得流行以来,了解 Linux 容器和虚拟机 之间的区别变得更加棘手。本文将向您提供详细信息,以了解 Linux 容器和虚拟机之间...

1482
来自专栏生信技能树

跟着jimmy学docker系列之第2讲:一个软件一个容器

回过头来看当初在生信技能树发布的docker教程已经是2017-07-07的事情了,那是一个好日子?:

1422
来自专栏Rainbond开源「容器云平台」

如何正确理解Docker生态

1463

扫码关注云+社区

领取腾讯云代金券