当前位置: 首页 > 知识库问答 >
问题:

为什么docker必须从dockerfile创建映像,然后从映像创建容器,而不是从dockerfile创建容器?

李云
2023-03-14

-----编辑-----

这个问题Docker映像和容器之间有什么区别?没有回答我的问题。

我的问题是:为什么我们需要从图像而不是从DockerFile创建容器?首先从Dockerfile创建映像,然后再创建容器的目的/好处是什么?

共有1个答案

仲孙鸿飞
2023-03-14
  • Dockerfile是创建图像的方法
  • 映像是虚拟文件系统
  • 容器是主机上正在运行的进程

你不希望每一个主机都根据食谱建立自己的形象。对于某些主机来说,下载一个映像并使用它更容易。

创建一个图像可能非常昂贵。我有复杂的Dockerfiles,可能需要几个小时来构建,可能下载50 GB的数据,但仍然只能创建一个200 MB的映像,我可以发送到不同的主机。

 类似资料:
  • 我的AWS ECR中有一个Docker映像,我想将其转换为AWS AMI,以便在环境中创建实例。 尝试在Docker容器上使用AMI的原因 我必须在m4中的Docker容器中运行计算密集型ML任务。xlarge在一些文本文件上的实例。然而,使用Docker时,实例的CPU利用率达到了100%,脚本也在提前终止。 但是,它在Docker外部的同一实例中运行良好。 因此,我想从Docker转移到AMI

  • 我正在尝试使用Jenkins中的节点代理容器在其上运行npm指令。因此,我正在创建一个Dockerfile,以使用ssh和nodejs获取有效的映像。执行器运行良好,但当我使用npm时,它表示它不知道该命令。 当(在构建dockerfile之后)我执行docker exec-it af5451297d85 bash,然后在容器中尝试执行npm--v(例如)时,也会出现同样的问题。 我想运行npm指

  • 问题内容: 我的Docker映像构建在Jenkins CI服务器上,并被推送到我们的私有Docker Registry。我的目标是使用docker- compose配置环境,该环境始终会启动映像的原始构建状态。 我目前在不同的机器上使用docker-compose 1.3.2和1.4.0,但是我们之前也使用了旧版本。 我总是使用命令从注册表中获取新图像并启动它们。我相信我的首选行为在某个时间点之前

  • 问题内容: 我们可以使用没有源映像(OS)的docker文件创建docker映像吗 我们不希望在所有应用程序docker映像中使用基本映像(centos或rhel)。我们想要将基本映像(centos或rhel)与应用程序映像分开,并在运行时将它们链接起来。可能吗? 当我 不使用 或构建docker映像时,docker抱怨:“提交前提供源映像” 我的docker文件如下所示: 问题答案: 您说过:“

  • 我有一个dockerfile来启动Tomcat。我想从那个dockerfile创建而不运行图像,这样在docker图像中我就可以看到图像了。docker run-it将我登录到容器,但我不想创建容器并登录到它。 我可以通过哪个命令来实现这一点?