这是第311篇原创文章。
一、什么是Docker?
Docker 是一种工具,使开发人员能够交付应用程序(以及库或其他依赖项)并使用正确的配置运行它们,无论部署环境如何。这允许用户快速构建、测试和部署应用程序。 Docker 通过将软件及其依赖项打包到轻量级、可移植的容器中来实现这一目标。这些容器是独立的可执行软件包,其中包含运行应用程序所需的一切,包括代码、运行时、库、环境变量和系统工具。这些应用程序被容器隔离,但可以共享操作系统和其他资源。换句话说,docker 允许您“容器化”您的应用程序。
对于程序员来说,Docker其实和Git类似,基本上都是必备工具。要使用此工具,您必须安装此应用程序工具。关于如何在各种操作系统上安装Docker,网上有很多教程,这里不再赘述。
二、为什么要用Docker?
在容器出现之前,这个问题是通过VMWare 和虚拟机管理程序等虚拟机解决的,但事实证明这些在效率、速度和可移植性方面并不理想。使用Docker 和将应用程序直接部署到服务器上没有太大区别,但对于更复杂和资源密集型的应用程序,尤其是当多个应用程序部署到同一台服务器或应用程序部署到多个服务器时会发生这种情况。容器非常有用。 Docker 容器是虚拟机的轻量级替代方案,不需要预先分配RAM、CPU 或其他资源,也不需要为每个应用程序启动虚拟机。容器使开发人员不必为不同环境创建特殊版本,并允许他们专注于应用程序的核心业务逻辑。
三、Docker关键组件
Dockerfile:Dockerfile 是一个纯文本文件,其中包含构建Docker 映像的指令。它们遵循Dockerfile 标准,Docker 守护进程最终负责运行Dockerfile 并生成镜像。 Docker 镜像:Docker 镜像是用于创建Docker 容器的只读模板。 Docker容器(container):Docker容器是从Docker镜像启动的运行实例。注册表:注册表存储镜像。它可以是私有的或公共的,并且可以选择要求身份验证。卷:卷是一种可用于一个或多个容器的文件系统。卷可以是持久的或临时的(仅在容器处于活动状态时持续)。网络:网络允许容器使用标准网络协议(TCP/IP)进行通信。
四、Image和Container的区别
映像是静态可执行软件包,其中包含运行特定应用程序所需的所有文件、依赖项、配置和环境。镜像可以被视为只读模板或快照,可用于创建多个相同的容器实例。镜像是构建容器的基础,可以存储、共享和版本控制。流行的镜像仓库如Docker Hub 和DockerRegistry。容器是镜像的运行实例,是一个独立的、轻量级的执行环境,您可以在其中运行应用程序。容器提供了一个隔离的执行环境,允许应用程序在不同的主机上以相同的方式运行,而不管主机的操作系统或配置如何。容器可以启动、停止、暂停、删除等。容器之间可以相互通信、共享资源,但又相互隔离。镜像和容器的关系是容器运行着基于镜像创建的实例。容器使用镜像作为其文件系统和运行时环境。镜像中的文件和配置被加载到容器中,应用程序在容器内运行。通过使用同一个镜像,您可以创建多个相同的容器实例,并将每个容器与其他容器隔离。不同之处在于,镜像是静态的、不可变的文件,而容器是动态的、运行的实体。镜像是构建和发布阶段,容器是部署和运行阶段。镜像通常用于构建和分发应用程序,而容器用于在各种环境中运行应用程序。综上所述,镜像是容器的基础,提供了运行应用程序所需的一切,而容器则是运行镜像的实例,提供了隔离的执行环境。通过镜像,您可以创建和管理多个相同的容器实例来部署和运行您的应用程序。
五、Docker与Docker Compose
Docker Compose 是一个用于定义和运行多容器Docker 应用程序的工具。
Docker Compose 允许您使用YAML 配置文件在一个位置配置多个容器。然后,您可以使用单个命令立即启动和停止所有这些容器。此外,Docker Compose 允许您定义容器共享的通用对象。例如,您可以定义一次卷并将其挂载到每个容器中以共享公共文件系统。或者,您可以定义一个网络以供一个或多个容器进行通信。最后,请记住Docker Compose 只是编排多个容器的一种工具。其他选项包括Kubernetes、Openshift 和Apache Mesos。作者简介:在读研究生期间发表了6 篇SCI 数据算法论文。目前,我在一家研究机构从事数据算法的研究,并根据自己的科研实践经验不断传播信息。介绍Python、数据分析、特征工程、机器学习、深度学习、人工智能的基础知识和实例的智能系列。更多信息请关注gzh:数据杂项论坛获取数据和源代码。
原文链接:
【Python程序开发系列】这是一篇讲解Docker的基本概念和基础知识(理论资料)的文章。
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。