原文: https://towardsdatascience.com/learn-enough-docker-to-be-useful-b7ba70caeb4b
做者:Jeff Hale
翻译:付新圆
容器对于提升软件开发和数据科学中的安全性、可重复性和可伸缩性很是有用。容器的崛起是当今科技领域最重要的趋势之一。python
Docker是一个用于在容器中开发、部署和运行应用程序的平台。Docker本质上是容器化的同义词。对于有抱负的软件开发人员或数据科学家来讲,Docker就是他们的将来。docker
若是您还不适应最新技术,请不要担忧——本文将帮助您理解Docker的概念,了解Docker的过程能够想象成是制做披萨的过程。ubuntu
在本系列有五篇文章,以后的四篇文章咱们将会讲解Docker术语、Dockerfiles、Docker镜像、Docker命令和数据存储。阅读完这个系列(再加上一点练习),你将会了解不少Docker发挥的做用😃!浏览器
首先,阐明一下Docker的类比。安全
谷歌中对类比的第二个定义是:服务器
象征物被认为是其余事物的表明或象征的事物,尤指抽象的事物。
类比能够帮助咱们理解新的事物。例如,物理容器的类比能够帮助咱们快速掌握虚拟容器的本质。机器学习
图为物理容器学习
如下是塑料容器对照Docker容器的类比:ui
与虚拟Docker容器不一样,网购的塑料容器须要花费钱,而且商家也不会提供商品副本。spa
Docker容器的第二种类比是能够将其视为一个有生命的的实例。实例是以某种形式存在的东西,不只仅只是代码,正是这些代码赋予了Docker容器生命。像其余生物同样,实例最终将死亡-这意味着容器将关闭。
Docker容器是Docker镜像的生命表现。
除了容器类比和实例类比,您还能够将Docker容器视为软件程序。毕竟,Docker容器确实是软件,在最基本的层次上,容器是一组操纵其余位的指令。
图为容器是代码
当Docker容器运行时,一般会有程序在运行。容器中的程序执行操做,应用程序也对应执行相关操做。
例如,Docker容器中的代码已经实时将网页上读取的内容发送了您,或者可能会将您的语音命令带到Amazon Alexa,并将其解码为另外一个程序并在不一样容器中使用的指令。
使用Docker,您能够在主机上同时运行多个容器,和其余软件程序同样,Docker容器能够运行、检查、中止和删除。
虚拟机是Docker容器的前身,它能够隔离应用程序及其依赖项。可是,Docker容器优于虚拟机,由于它们占用的资源更少,很是便捷,而且启动速度更快。
在本文中,术语“ 镜像 ”的含义没法很好地映射到物理镜像。
Docker镜像更像是蓝图、饼干切割机或模具。镜像是不可变的主模板,用于抽取彻底相同的容器。
镜像包含应用程序运行所需的Dockerfile、库和代码,全部这些都是捆绑在一块儿的。
Dockerfile 是一个文件,其中包含Docker应如何构建图像的说明。
Dockerfile引用用于构建初始镜像层的基础镜像。流行的官方基础镜像包括python,Ubuntu和alpine。
而后,根据Dockerfile中的说明,能够将其余层堆叠在基本镜像层的顶部。例如,用于机器学习应用程序的Dockerfile能够告诉Docker在中间层添加NumPy,Pandas和Scikit-learn。
最后,根据Dockerfile代码,在其余层之上堆叠了一个可写的薄层。(薄层的尺寸很小,在这里薄是一种类比)
在本系列的后续文章中,将会更深刻地探讨Dockerfiles。
Docker镜像加上命令docker run image_name
,可从镜像建立并启动容器。
若是但愿其余人可以从本身的镜像中建立容器,则能够将镜像发送到容器注册表。Docker Hub是最大的注册表,也是默认的注册表。
图为景观类比
将食谱和食材想像成一体的披萨制做套件。这是Docker镜像。
配方(Dockerfile)告诉咱们咱们要作什么。计划以下:
图为烤箱
docker run image_name
命令就像烤箱的旋钮同样——它能够建立并启动容器。就像制做披萨同样,在Docker容器中制做应用程序须要一些工做,但最终您会拥的是很是有价值的。
以上就是Docker概念的内容。在本系列的第2部分,将阐明在Docker生态系统中经常使用的一些术语。但愿本文对您了解Docker有所帮助,同时也但愿您看到类比在理解新技术中的价值。