了解足够有用的Docker知识(第一部分)

容器(Docker)对于改善软件开发和数据科学中的安全性,可重复性和可伸缩性非常有用。它们的崛起是当今技术最重要的趋势之一。

Docker是一个用于在容器内开发,部署和运行应用程序的平台。Docker本质上是容器化的代名词。如果您是现任或有抱负的软件开发人员或数据科学家,那么Docker就是您的未来。

如果您还不了解最新技术,请不要担心,本文将帮助您了解基础性概念。

在本系列的五篇文章中,我们将介绍Docker术语,Dockerfiles,Docker映像,Docker命令和数据存储。

本文来自《数据黑客》,登录官网可阅读更多精彩资讯和文章。

Docker比喻

我将使用一些比喻来描述什么是Docker。

比喻可以帮助我们理解新事物。例如,物理容器的比喻可以帮助我们快速掌握虚拟容器的本质。

在这里插入图片描述

容器

就像物理塑料容器一样,Docker容器:

  1. 容纳东西 - 东西在容器内还是容器外。
  2. 便携式 - 可在您的本地计算机,同事的计算机或云提供商的服务器(例如AWS)上使用。就像盒子一样,你可以从一个地方搬到另一个地方。
  3. 具有清晰的访问接口 - 我们的物理容器有一个盖子,用于打开和放入物品以及取出物品。同样,Docker容器具有多种与外界交互的机制。它具有可以打开以通过浏览器进行交互的端口。您可以将其配置为通过命令行与数据交互。
  4. 可以从远程位置获取 - 您可以从亚马逊购买一个空的塑料容器。亚马逊从制造商那里获得了塑料容器,这些制造商可以通过一个模具将它们成千上万个邮票压出。对于Docker容器,异地注册表会为您的容器保留一个像模具的映像。然后,当您需要一个容器时,可以根据镜像制作一个。

生活实例

您可以想到的第二种方法是将Docker容器视为“活着的实例”。实例是以某种形式存在的东西,不只是代码。像其他生物一样,该实例最终将死亡,这意味着该容器会关闭。

在这里插入图片描述

Docker容器是栩栩如生的Docker映像。

软件

除了物理容器和活动实例的比喻,您还可以将Docker容器视为软件程序。归根到底它是软件,在最基本的层次上,容器是一组操纵0和1的指令。

在这里插入图片描述

在Docker容器运行时,通常会在其中运行程序。容器中的程序执行操作,因此您的应用程序将执行某些操作。

例如,Docker容器中的代码可能已经向您发送了您正在此网页上读取的内容。或者,可能会将您的语音命令带到Amazon Alexa,并将其解码为另一个容器中的另一个程序将使用的指令。

使用Docker,您可以在主机上同时运行多个容器。与其他软件程序一样,可以运行,检查,停止和删除Docker容器。

概念

虚拟机

虚拟机是Docker容器的前身。虚拟机还隔离应用程序及其依赖项。但是,Docker容器优于虚拟机,因为它们占用的资源更少,具有很高的可移植性并且启动速度更快。请查看本文,以深入了解两者的差异。

Docker镜像

我在上面提到了镜像(image)。

什么是镜像?在Docker上下文中,术语“映像”的含义无法很好地映射到物理映像。

在这里插入图片描述

Docker镜像更像是蓝图,切刀或模具。镜像是不可变的主模板,用于创建完全相同的容器。

在这里插入图片描述

镜像的创建基于Dockerfile,库和您的应用程序的源代码。

Dockerfile

Dockerfile是一份文件,其中包含Docker如何构建镜像的说明。

Dockerfile首先要指定构建镜像层的基础镜像(base image),比较流行的官方基础镜像包括python,ubuntu和alpine。

然后,将其它技术层堆叠到基础镜像之上,例如,用于机器学习的Dockerfile可以告诉Docker在中间层添加NumPy,Pandas和Scikit-learn。

最后,在所有技术层的最上方构建您的应用程序。

在本系列的后续文章中,我将更深入地探讨Dockerfiles。

Docker容器

准备好Docker镜像后,运行docker run image_name将自动创建和运行容器。

容器注册表(Container Registry)

如果希望其他人能够从您的映像中创建容器,则可以将映像发送到容器注册表。Docker Hub是最大的注册表,也是默认的注册表。

上面介绍了很多概念!让我们把这些内容组合到一起,不妨把管理容器视为烹饪,这将非常有趣。

用Docker“烹饪”

在这里插入图片描述

  • 烹饪配方就像Dockerfile,它告诉您如何实现最终目标。
  • 食材是镜像层(image layers),做披萨需要有面包,酱汁和奶酪。

将食谱和食材想像成一体的披萨制作套件。这就是Docker镜像。

配方(Dockerfile)告诉我们要做什么:

  • 披萨外壳要预成型且不可变,就像基本的ubuntu基础镜像,它处于所有技术栈的最底层,应当首先被创建。
  • 然后添加一些奶酪。将第二层添加到披萨饼就像安装一个外部库,例如NumPy。
  • 然后可以撒一些调料。调料就像运行应用程序的源代码。

在这里插入图片描述

  • 烤披萨的烤箱就像Docker平台。您要先把烤箱安装在自己的房子里,这样才能制作东西。同理,您需要将Docker安装到计算机上,然后才能运行容器。
  • 您可以通过物理按钮来启动烤箱。同理docker run image_name命令就像按钮一眼,它创建并启动容器。
  • 煮熟的比萨就像一个正在运行的Docker容器。
  • 吃披萨就像使用您的应用程序。

结论

这就是全部基础概念。在本系列的第2部分中,我将继续介绍Docker生态系统的常见术语。希望本文有助于您更好地了解Docker。

来源:Medium
作者:Jeff Hale
翻译校对:数据黑客
原文标题:Learn Enough Docker to be Useful


数据黑客官网

数据黑客:专注金融大数据,聚合全网最好的资讯和教程,提供开源数据接口。

我们聚合全网最优秀的资讯和教程:

  1. 金融大数据
  2. 机器学习/深度学习
  3. 量化交易
  4. 数据工程
  5. 编程语言,Python,R,Julia,Scala,SQL

我们提供开源数据接口:

  1. 下载国内和国外海量金融数据
  2. API接口,将数据整合到您的平台
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值