原文作者:Jeff Hale

原文地址:https://towardsdatascience.com/learn-enough-docker-to-be-useful-1c40ea269fa8

翻译:付新圆

在本系列的第1部分《Docker-第1部分:什么是Docker?》我们探讨了Docker容器的概念以及Docker容器的重要性,文章的最后我们把Docker类比成了一个披萨,并把它拆解开来解释Docker容器的结构和用途。在本文中,将分享Docker生态系统中的常用的术语。

遵循本系列第一篇文章中的食品主题,这里我们将甜甜圈想象成一个Docker容器。

Docker生态系统术语

为了方便大家理解,我将Docker术语分为两类:基础术语和进阶术语。

Docker 基础术语

1.Docker平台

Docker平台是 Docker的软件,可在任何Linux服务器上的容器中打包和运行应用程序。Docker平台捆绑了代码文件和依赖项,支持可移动性和可重复性来促进平台扩展。

2.Docker引擎

Docker引擎是客户端服务器应用程序。Docker公司将Docker引擎分为两种产品。

图:引擎让事情运转

3.Docker客户端

Docker客户端是许多Docker用户与Docker交互的主要方式。使用Docker命令行界面(CLI)时,请在终端中输入以docker开头的命令,然后Docker客户端使用Docker API将命令发送到Docker Daemon。

图:Docker文档中的图表

4.Docker Daemo

Docker Daemo是侦听Docker API请求的Docker服务器,管理映像、容器、网络和卷。

5.Docker卷

Docker卷是存储应用程序消耗和创建的持久数据的最佳方式。在本系列的第5部分中,我们将对Docker卷进行更多的讨论。

图:卷

6.Docker 注册表

Docker注册表是存储Docker映像的远程位置,将图像推送到注册表并从注册表中提取图像,可以托管注册表或使用提供程序的注册表。例如,AWS和googlecloud都有注册。

7.Docker Hub

Docker Hub是Docker映像的最大注册表,也是默认注册表。您可以在Docker Hub上免费查找图片并存储图片。

图:轮毂和辐条

8.Docker 存储库

Docker 存储库是具有相同名称和不同标签的Docker图像的集合,该标签是图像标识符。

通常,一个存储库具有同一映像的不同版本。例如,Python 是Docker Hub上最流行的官方Docker映像存储库的名称。Python:3.7-slim 指的是Python存储库中带有3.7-slim标签的图像版本。您可以将存储库或单个映像推送到注册表。

Docker 进阶术语

接下来我们看一下与扩展多个Docker容器有关的Docker术语,以下四个概念涉及一次使用多个容器。

1.网络容器

网络容器可以将Docker容器连接在一起,连接的Docker容器可以位于同一主机或多个主机上。有关Docker网络的更多信息,请参阅这篇文章

图:Docker网络

2.Docker Compose

Docker Compose是一种工具,可让您更轻松地运行需要多个Docker容器的应用程序。Docker Compose允许您将命令移动到docker-compose.yml文件中以供重用。Docker Compose命令行界面(cli)使与多容器应用程序的交互变得更加容易。Docker Compose随您的Docker安装一起免费提供。

3.Docker Swarm

Docker Swarm是用于协调容器部署的产品。Docker官方教程的第四部分介绍了Docker Swarm。

图:蜂群

4.Docker 服务

Docker服务是分布式应用程序的不同部分。

服务实际上只是“生产中的容器”。一个服务仅运行一个映像,但它规定了映像的运行方式—应该使用什么端口,应该运行多少个容器副本,这样服务就有了它需要的容量,等等。扩展服务会更改运行该软件的容器实例的数量,从而在流程中为服务分配更多的计算资源。

Docker服务允许您跨多个Docker Daemon扩展容器,并使Docker Swarms成为可能。

回顾

以下用一行文字总结以帮助你理清这十几个术语。

基本

  • 平台—使Docker容器成为可能的软件
  • 引擎—客户端服务器应用程序(CE或Enterprise)
  • 客户端—处理Docker CLI,以便您可以与守护程序进行通信
  • Daemon—Docker服务器,管理关键内容
  • 卷—持久数据存储
  • 注册表—远程映像存储
  • Docker Hub—默认和最大的Docker 注册表
  • 存储库—Docker图像的集合,例如Alpine

缩放比例

  • 网络—将容器连接在一起
  • 撰写—节省多容器应用程式的时间
  • Swarm—协调容器部署
  • 服务—生产中的集装箱

因为我们遵循食物的隐喻,所以我们为引入了另一个相关术语:Kubernetes。

图:再加一层甜甜圈并洒上糖果

Kubernetes自动执行容器化应用程序的部署、扩展和管理。它是容器编排市场的赢家,代替Docker Swarm,使用Kubernetes来扩展具有多个Docker容器的项目。Kubernetes不是Docker的官方部分,它更像是Docker的BFF。

图:Kubernetes

现在您已经了解了Docker的概念和常用术语,那么我建议您尝试使用Docker。

使用Docker

Docker在Linux、Mac和Windows上本地运行。如果您使用的是Mac或Windows计算机,请在此处安装最新稳定版本的Docker Desktop 。作为奖励,它附带Kubernetes。如果要在其他地方安装Docker,请转到此处查找所需的版本。

安装Docker之后,执行Docker教程的前两部分。

总结

以上就是关于Docker的十二个术语的相关内容。在本系列的下三个部分中,我们将深入研究Dockerfile指令,请持续关注我们。


本文由猪齿鱼技术团队原创,转载请注明出处:猪齿鱼官网

Docker入门系列之二:Docker术语的更多相关文章

  1. Docker入门系列之二:使用dockerfile制作包含指定web应用的镜像

    实现题目描述的这个需求有很多种办法,作为入门,让我们从最简单的办法开始. 首先使用命令docker ps确保当前没有正在运行的Docker实例. 运行命令docker run -it nginx: 然 ...

  2. Docker入门系列之三:如何将dockerfile制作好的镜像发布到Docker hub上

    这个系列的前两篇文章,我们已经把我们的应用成功地在Docker里通过nginx运行了起来,并且用dockerfile里制作好了一个镜像. Docker入门系列之一:在一个Docker容器里运行指定的w ...

  3. Docker入门教程(二)命令

    Docker入门教程(二)命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能. 在Docker ...

  4. Docker入门系列(一):目标和安排

    Docker入门系列(一) 这个系列的教程来源于docker的官方文档,此文档的目的在于一步一步学习docker的使用方法. 这一系列的教程有如下几篇文档: docker安装启动 构建第一个docke ...

  5. Docker入门之 - 如何安装Docker CE

    原文:Docker入门之 - 如何安装Docker CE 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012055638/article/det ...

  6. Docker 技术系列之安装Docker Desktop for Mac

    终于要进入到Docker技术系列了,感谢大家的持续关注. 为什么要选择Docker?因为Docker 轻巧快速,提供了可行.经济.高效的替代方案.举个例子,安装Nginx,Mysql,Redis等常用 ...

  7. Cordova入门系列(二)分析第一个helloworld项目 转发 https://www.cnblogs.com/lishuxue/p/6015420.html

    Cordova入门系列(二)分析第一个helloworld项目   版权声明:本文为博主原创文章,转载请注明出处 上一章我们介绍了如何创建一个cordova android项目,这章我们介绍一下创建的 ...

  8. Docker学习系列(二):Docker三十分钟快速入门(上)

    一.背景 ​ 最近,Docker技术真是一片火热,它的出现也弥补了虚拟机资源消耗过高的问题,直接让虚拟化技术有了质的飞跃.那么本文我们来聊一聊Docker,和大家一起认识Docker,简单入门Dock ...

  9. Docker入门系列之五:15个 Docker 命令

    在这篇文章中,我们将学习15个Dockers CLI命令.如果你还不了解Docker,请查看这个系列的其他部分进行学习,Docker概念,生态系统,Dockerfile,Docker镜像. Docke ...

随机推荐

  1. Java程序员的推荐阅读书籍

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

  2. Map的putAll方法验证

    下面的程序验证了Map的putAll方法的行为特性,代码如下: import java.util.HashMap; public class Map_putAllTest { public stati ...

  3. git只提交部分修改的文件(提交指定文件)

    在我们的项目中,经常会在本地编译一些代码,还未写完,测试那边来告诉你要改改某个文件的bug,非常着急,此时改完了,提交的时候,自己还在编译的代码并不想提交,此时,你可以利用git这些指令帮助你! 1/ ...

  4. JVM学习笔记-第七章-虚拟机类加载机制

    JVM学习笔记-第七章-虚拟机类加载机制 7.1 概述 Java虚拟机描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被 ...

  5. NOIP 模拟 $34\; \rm Equation$

    题解 \(by\;zj\varphi\) 发现每个点的权值都可以表示成 \(\rm k\pm x\). 那么对于新增的方程,\(\rm x_u+x_v=k\pm x/0\) 且 \(\rm x_u+x ...

  6. .NET Core垃圾收集

    在本章中,我们将介绍垃圾收集的概念,垃圾收集是.NET托管代码平台最重要的特性之一. 垃圾收集器(GC)管理内存的分配和释放. 垃圾收集器用作自动内存管理器. 我们不需要知道如何分配和释放内存或管理使 ...

  7. Contos7 克隆实例 以及 配置网络-服务-等相关信息

    以下为我自己整理的克隆虚拟机和设置固定IP的方法,记录一下,以防忘记: 桥接模式网络配置 1.配置ip地址等信息在文件里做如下配置: /etc/sysconfig/network-scripts/if ...

  8. Linux c高级

    目录 一.Linux 1.1.嵌入式 1.2.什么是Linux 1.3.Linux发行版 1.4.Linux体系结构 1.5.虚拟4G内存 1.6.shell 命令 1.7.软件包的管理 1.8.图形 ...

  9. 项目版本管理Git使用详细教程

    前言 记得刚开始做项目开发的时候都是一个人完成一个项目,单打独斗的开发,也不知道什么是团队开发,没有这个概念,随着工作后来知道公司里项目都是团队开发,这个时候这么多人怎么开发一个项目呢,难道用u盘拷贝 ...

  10. redis>lua脚本

    String lua="local num=redis.call('incr',KEYS[1])\n"+"if tonumber(num)==1 then\n" ...