《 理解Docker&容器 》

理解 Docker

一、概述

“ Docker 是全球领先的软件容器平台 ”。开发人员利用 Docker 可以消除协作编码时“ 在我的机器上可正常工作 ”的问题。运维人员利用 Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用 Docker 可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的应用发布新功能-版本迭代(满足现代化企业的快速发展需求)。

二、面向不同的用户(个性化定制)

面向开发人员的Docker

Docker 能够自动执行重复性任务,例如搭建和配置开发环境,从而解放了开发人员以便他们专注在真正重要的事情上:构建杰出的软件。

开发人员使用了 Docker,就不必安装和配置复杂的数据库,也无需在不兼容语言工具链版本之间切换时担心。应用容器化之后,其复杂性就被转移到能够轻松构建共享运行的容器中。当有新同事安排到新的项目组时,无需再费时费力地安装软件和配置各种所需的运行时环境。以 Dockerfile 文件形式发布的代码使用起来非常简单:首先安装 Docker 和编辑器,然后拉取作为 Docker 镜像打包在一起的依赖资源,短短数分钟,就能够构建和调试应用了。

特点:

1、不受应用、语言或技术栈的限制

构建、测试、调试和部署以任何编程语言编写的 Linux 和 Windows Server 容器应用,无需担心任何不兼容或版本冲突情况。

2、绝佳的开发体验

工作就绪时间缩短 65%:快速构建、测试和运行复杂的多容器应用,无需再浪费时间在服务器和开发人员机器上安装和维护软件。所有依赖资源都在容器中运行,消除“在我的机器上可正常工作”的问题。

3、内置容器编排

Docker 内置易于配置的 Swarm 集群功能。在使用最小设置的模拟生产环境中测试和调试应用。

三、面向系统管理员的Docker

Docker 简化了软件交付。既能顺利地开发和部署漏洞补丁与新功能,还能够实时扩展应用。

Docker 是开发人员和 IT 运维团队的秘密武器。有了 Docker,就能够自动并安全地构建交付测试部署应用,顺利地进行移植。无需再查阅令人烦恼的论坛博客、叙述文件、运行手册、便利贴等等陈旧冗余的信息。使用 Docker 的团队后的镜像在开发、预演和生产环境中都能一样工作。新功能和修订都能迅速地悄然部署到客户环境中以正常的运行。

特点:

1、交付速度提高 13 倍

Docker 用户交付软件的速度平均提高了 13 倍。使用 Docker 的团队能够更加迅速地推送软件更新,将修订和新功能部署到客户环境中。

2、快速扩展

内置编排组件能够扩展到数千个节点容器。Docker 容器能够在短短数秒之内启动和停止,便于扩展应用服务,以满足客户的高峰需求,并在峰值下降时缩减规模。

3、提高效率、降低成本

应用维护和工时都能节省高达 10 倍。Docker 的轻松部署、识别和解决问题,降低了总体运维成本。缩短部署更新的停机时间,遇到问题时能迅速回滚,尽量减少系统应用中断运行的情况。

4、分发和共享内容

通过本地或云端的安全 Docker 镜像库构建、管理和分发 Docker 镜像,并在运维中自动同步镜像更新、配置更改和构建历史。

5、轻松共享应用

Docker 确保应用在任何环境中都能始终如一地工作。在 Docker 镜像中,整个技术栈和配置都是镜像的一部分,用户只需安装 Docker,无需配置复杂的主机环境。

6、保证应用安全

与授权用户安全地协作开发应用,全程保护代码安全。Docker Content Trust 和内置安全组件或者说安全机制确保在适当的时间将适当的代码提供给适当的人员。

四、面向企业的Docker

Docker 是现代应用平台的核心,是开发人员与运维人员、Linux 和 Windows 之间的纽带。Docker 既适用于云,也可以在本地部署;既支持传统架构,也支持微服务架构。使用 Docker 可以构建连接保护调度容器,从开发到生产全程进行管理。Docker 以最优成本确保应用敏捷、支持云且安全,伴随企业踏上数字转型的征程。

特点:

1、一个平台,适用于所有应用

无论是单体应用还是微服务应用,无论是 Linux 还是 Windows 应用,无论是部署在本地还是在云端,Docker 为所有应用提供了一套统一的框架,一个标准的容器和工作流程,确保应用安全敏捷可移植

2、大规模快速发布

Docker 容器通过自动化部署流程,加速微服务架构的应用交付。可以频繁地发布新功能(必要时也可实现快速回滚),迅速地满足客户需要。

3、打破壁垒

通过开放式接口、API 和插件,可以轻松地将 Docker 集成到现有环境,并扩展到不同的系统。开发和运维团队利用公共接口可以顺利协作,互不干扰。

认识容器

“ 容器是一种标准化的软件单元 ” ,将软件打包成标准化单元,以用于开发、交付和部署。

有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要像虚拟机那样捆绑一整套操作系统,只需要软件工作所需的库资源和设置即可。系统因此而变得高效、轻量、自给自足,还能保证部署在任何环境中的软件都能始终如一地运行。

容器镜像是轻量的可执行的独立的软件包,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置等。容器化软件适用于基于 Linux 和 Windows 的应用,在任何环境中都能够始终如一地运行。容器赋予了软件独立性,使其免受外在环境差异(例如,开发和预演环境的差异)的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突。

容器的三大重量级特性:

1、轻量级的

在一台机器上运行的多个 Docker 容器可以共享这台机器的操作系统内核;它们能够迅速启动,只需占用很少的计算和内存资源。镜像是通过文件系统层进行构造的,并共享一些公共文件。这样就能尽量降低磁盘用量,并能更快地下载镜像。

2、标准化的

Docker 容器基于开放式标准,能够在所有主流 Linux 版本、Microsoft Windows 以及包括 VM、裸机服务器和云在内的任何基础设施上运行。

3、安全的

Docker 赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker 默认提供最强的隔离,因此应用出现问题,也只是单个容器的问题,而不会波及到整台机器。

容器 VS 虚拟机

容器和虚拟机具有相似的资源隔离和分配优势,但功能有所不同,因为容器虚拟化的是操作系统,而不是硬件,因此容器更容易移植,效率也更高。

关于容器:

容器是一个应用层抽象,用于将代码和依赖资源打包在一起。多个容器可以在同一台机器上运行,共享操作系统内核,但各自作为独立的进程在用户空间中运行。与虚拟机相比,容器占用的空间较少(容器镜像大小通常只有几十兆,最多也就几百兆),瞬间就能完成启动。

关于虚拟机:

虚拟机 (VM) 是一个物理硬件层抽象,用于将一台服务器变成多台服务器。管理程序允许多个 VM 在一台机器上运行。每个 VM 都包含一整套操作系统、一个或多个应用、必要的二进制文件和库资源,因此占用大量空间。而且 VM 启动也十分缓慢。

容器和虚拟机共存

1、独立存在的容器

2、容器与虚拟机的融合

将容器和虚拟机配合使用,为应用的部署和管理提供极大的灵活性。

Docker 的发展历史

2013 年,Docker 横空出世,将软件容器概念推出市场,在应用开发领域掀起了一场革命浪潮。短短数年,Docker 在应用开发、打包和管理领域引入了一套新词汇、框架和标准,给行业带来了巨大的改变和影响。

公司成立之初的核心业务是 dotCloud,致力于将 dotCloud 转变成更优秀的 Linux 容器技术 - 一种可移植、易部署的灵活技术。Docker 后来将 libcontainer 开源,联手世界各地的贡献者推进开发进程。仅仅两年之后,随着容器生态的逐步发展和成熟,Docker 于 2015 年 6 月将规范和运行时环境代码(现称 runC)捐赠给了开放容器计划(OCI),以帮助制定容器的标准化方法。

在取得这一次巨大进步后,Docker 乘势而上,推出 Containerd 项目。Containerd 是 Docker 引擎守护进程的核心容器运行时环境。Containerd 是一种行业标准的容器运行时环境,具备简洁稳健可移植特性,是更高级系统的可嵌入式组件。Docker 引擎是基于 runC 和 Containerd 构建的。该协作项目为开发人员提供了应用的移植性,推动了 OCI 进行容器标准化,促进了工具生态圈的增长,繁荣了免费的镜像市场以便社区可以分享和改造预制的应用程序。

总的来说,Containerd 就是一种行业标准的容器运行时环境,具备简洁、稳健和可移植特性。它可以用作 Linux 和 Windows 的守护进程,负责管理主机系统整个容器的生命周期:镜像传输存储容器执行监控底层存储网络连接

Docker 应用场景

1、传统应用现代化

将现有应用打包至容器,无需更改应用代码,应用安全、成本和云可移植性的改进立竿见影。

2、开发运维 (CI/CD)

加速和自动化开发流程,获得快速反馈的同时消除应用冲突,提高开发人员生产力。

3、微服务

容器简化了以微服务架构模式设计的应用的开发和部署。

4、基础设施优化

将应用容器化,在相同的服务器上并行运行容器,改善工作负载强度。Docker 通过整合基础设施,提高利用率和加速云迁移,可帮助用户降低成本。

5、混合云

无论是私有数据中心还是公有云基础设施,Docker 都允许在各种基础设施之间无缝移植任何应用,而无需重新编码。加速云迁移,支持混合云环境或多重云环境。

参考自官网:Docker官网

参考自百科:百度百科

WIKI:WIKI


好了,关于 Docker快速入门系列(二)——理解Docker&容器  就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。 
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。


作       者: 华    仔
联系作者: who.seek.me@java98k.vip
来        源: CSDN (Chinese Software Developer Network)
原        文: https://blog.csdn.net/Hello_World_QWP/article/details/83544059
版权声明: 本文为博主原创文章,请在转载时务必注明博文出处!

理解Docker容器相关推荐

  1. 【k8s】理解Docker容器的进程管理(PID1进程(容器内kill命令无法杀死)、进程信号处理、僵尸进程)

    文章目录 概述 1. 容器的PID namespace(名空间) 2. 如何指明容器PID1进程 3. 进程信号处理 4. 孤儿进程与僵尸进程管理 5. 进程监控 6. 总结 参考 概述 简介: Do ...

  2. 10张图带你深入理解Docker容器和镜像--云平台技术栈07

    导读:之前发布了云平台技术栈(ps:点击可查看),本文主要说一下其中的Docker! 翻译:杨润青 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image ...

  3. 10张图带你深入理解Docker容器和镜像

    本文用图文并茂的方式介绍了容器.镜像的区别和Docker每个命令后面的技术细节,能够很好的帮助读者深入理解Docker. 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(containe ...

  4. docker -v 覆盖了容器中的文件_10分钟让你理解 docker 容器中的 uid 和 gid

    默认情况下,容器中的进程以 root 用户权限运行,并且这个 root 用户和宿主机中的 root 是同一个用户.听起来是不是很可怕,因为这就意味着一旦容器中的进程有了适当的机会,它就可以控制宿主机上 ...

  5. DockerONE 干货 深入理解Docker容器和镜像

    这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别. 当我对Docker技术还是一知半解的时候,我 ...

  6. 10 张图带你深入理解Docker容器和镜像

    此文中部分信息.图片需要 fan qiang , 如果未能正常显示,文末有原文连接 . [Kubernetes培训通知]DockOne将会于2018年5月18日在上海举办Kubernetes技术培训, ...

  7. Docker--10张图带你深入理解Docker容器和镜像

    这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别. 当我对Docker技术还是一知半解的时候,我 ...

  8. 【Docker学习笔记 五】深入理解Docker容器数据卷机制

    前几篇Blog是对Docker的一个入门和初识,本篇Blog开始就详细学习下一个新的理论基础概念:Volume,也就是容器数据卷,听起来名字高大上,实际上就是一个宿主机的目录而已,为什么需要容器数据卷 ...

  9. 理解Docker “容器主机”和“容器操作系统”的关系

    http://www.floydhilton.com/docker/2017/03/31/Docker-ContainerHost-vs-ContainerOS-Linux-Windows.html ...

最新文章

  1. HBase scan setBatch和setCaching的区别
  2. centos6 rsync+inotify 数据同步
  3. C#之while与do……while语句
  4. 《大型网站技术架构》读书笔记四:瞬时响应之网站的高性能架构
  5. NJUST4316(立体几何投影的面积交)
  6. 如何用c语言程序写一段英文字母,菜鸟求助,写一个随机输出26个英文字母的程序...
  7. redhat server 5.3内核升极2.6.18 升级到 3.5 装systemtap 原创
  8. ECCV 2020 Spotlight 谷歌论文大盘点
  9. javascript 不让成为nan_一张图彻底搞懂JavaScript的==运算
  10. web服务中使用线程池减少时间的方法
  11. 倒计时 4 天!年度开发者盛会 Unite Shanghai 2019 全日程揭晓(附表)
  12. 使用Python Seaborn和Pandas进行数据可视化
  13. 树的非递归前中后序遍历
  14. Delphi7--Delphi7软件的介绍
  15. python数据结构-顺序表
  16. 【计算机硬件系统设计(华科)——运算器设计(Logisim 实现)】
  17. System32与SysWow64的区别
  18. 《缠中说禅108课》63:替各位理理基本概念
  19. 计算机组老师颁奖词,教研组颁奖词5篇
  20. R语言基础 期中考试

热门文章

  1. VS2008操作Word2007 2010保存为PDF
  2. 艾瑞咨询:2011年中国移动互联网行业五大盘点
  3. 糖尿病性视网膜病变模型 动物模型心血管疾病模型
  4. 12纳米做出了7纳米的性能,为国产芯片打破美国限制指明道路
  5. UI设计-软件产品设计
  6. 步科ET070不能启动
  7. Spring源码深度解析(郝佳)-学习-资源匹配-doMatch
  8. 迪米特法则实现“高内聚、松耦合”
  9. AI Vision全球开发者项目合作计划产品发布会顺利举办,物联网人工智能机器视觉行业代表参会
  10. 程序员,那些年我们一起走过的路