Docker 允许开发人员快速启动任何开发环境,而无需在其本地计算机上安装所有必需的软件和工具。这是使用图像和容器完成的,但这意味着什么?今天,我将解释 docker 镜像与容器之间的区别。
什么是 Docker 镜像?
镜像是包含创建容器所需信息的包。它包括在容器运行时使用的所有依赖项和部署配置。图像可以使用分层从多个基础图像继承。我们将在本课程中深入讨论这个主题,您将构建基础镜像并使用构建器模式和多阶段构建。层层叠叠形成容器的文件系统。图像没有状态,它永远不会改变。
如果您在本地开发环境中工作,要开始任何项目,您的第一步通常是安装您正在处理的项目所需的一切,例如 SQL 服务器、IIS、搜索索引提供程序(如 Solr)等。此过程容易出错且乏味。
Docker 镜像包含所有这些工具,这意味着当您开始一个新项目时,团队中的开发人员只需拉取 docker 镜像!老实说,这是有史以来最好的事情。
什么是 Docker 容器?
另一方面,容器是图像的运行时实例。它具有图像、执行环境和运行时说明,例如执行 nuget 还原和使用 MSBuild 构建解决方案。
Docker 背后的想法是它定义了一个标准来运送软件。集装箱是指海运集装箱,它定义了在全球范围内运输货物的标准。这些货物到达码头,码头工人(也称为码头工人)是从集装箱装卸货物的人。在我听到这个消息之前,我已经使用 Docker 工作了一年多,我想把它传递下去!让我们在实践中看看这个!
如何拉取 Docker 镜像并运行 Docker 容器
我将使用静态站点示例。您可以使用此处显示的运行命令从 docker-curriculum 存储库中获取它。我在 VSCode 中使用 Docker 扩展来处理 Docker 图像和容器,我强烈推荐它。
docker run -d -P --name static-site prakhar1989/static-site
如何获取正在运行的 Docker 容器的端口号
您需要使用 docker port 命令获取静态站点的端口并指定静态站点容器。
docker port static-site
打开浏览器并导航到您的本地主机和端口号。
在 VSCode 中使用 Docker 扩展
我喜欢使用 VSCode 来处理我的 Docker 容器,如果你安装了扩展,你可以管理你的容器、图像、注册表、网络、卷和上下文。您可以展开图像和容器面板以查看您创建的内容!镜像和容器的名称相同:prakhar1989/static-site。但是,容器可以通过更短的名称或标签“static-site”来引用。
您还可以使用命令 docker ps 查看您的容器。这将向您显示有关容器的重要信息,包括状态和端口。
要查看所有图像,请使用命令docker images。
总之,Docker 镜像是一个包,其中包含容器运行时使用的所有依赖项和部署配置。容器是图像的运行时实例。