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

在Docker中,容器和图像有什么区别?[副本]

丁立果
2023-03-14

容器和Docker中的图像有什么区别?在“开始使用Docker”教程中,这两个术语都使用过,但我不理解它们之间的区别。

有谁能说点什么吗?

共有1个答案

曹旭东
2023-03-14

图像是活动容器的冻结的不可变快照。容器是某个映像的运行(或停止)实例。

从名为'ubuntu'的基本图像开始。让我们在ubuntu映像中交互地运行bash并创建一个文件。我们将使用-i-t标志为我们提供一个交互式bash shell。

$ docker run -i -t ubuntu  /bin/bash
root@48cff2e9be75:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@48cff2e9be75:/# cat > foo
This is a really important file!!!!
root@48cff2e9be75:/# exit

当您退出并重新启动映像时,不要期望该文件仍然存在。您将从与之前完全相同的定义状态重新启动,而不是从停止的位置重新启动。

$ docker run -i -t ubuntu  /bin/bash
root@abf181be4379:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@abf181be4379:/# exit
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                CREATED              STATUS                          PORTS                      NAMES
abf181be4379        ubuntu:14.04        /bin/bash              17 seconds ago       Exited (0) 12 seconds ago                                  elegant_ardinghelli    
48cff2e9be75        ubuntu:14.04        /bin/bash              About a minute ago   Exited (0) 50 seconds ago                                  determined_pare        
...

让我们从创建文件的容器ID 48CFF2E9BE75中创建一个映像:

$ docker commit 48cff2e9be75 ubuntu-foo
d0e4ae9a911d0243e95556e229c8e0873b623eeed4c7816268db090dfdd149c2

现在,我们有了一个真正重要的文件的新映像:

$ docker run ubuntu-foo /bin/cat foo
This is a really important file!!!!

请尝试命令docker images。您应该会看到您的新映像ubuntu-foo与我们开始使用的ubuntu标准映像一起列出。

 类似资料:
  • 在使用Docker时,我们从一个基图像开始。我们启动它,创建更改,这些更改保存在图层中,形成另一个图像。 所以最终我有了一个用于我的PostgreSQL实例的映像和一个用于我的web应用程序的映像,对这些映像的更改将持续保持。 什么是容器?

  • 在这种情况下,这些rest层ID是否与其他一些图像相对应呢?如果是真的,我可以视图层为图像吗?

  • 问题内容: Docker中的容器和映像之间有什么区别?在《Docker入门》教程中,这两个术语都被使用,但是我不明白它们之间的区别。 有人可以说明一下吗? 问题答案: 图像是实时容器的固定不变快照。容器正在运行(或停止)某些图像的实例。 从名为“ubuntu”的基本映像开始。让我们在ubuntu映像中交互式运行bash并创建一个文件。我们将使用和标志为我们提供一个交互式bash shell。 不要

  • 高山码头工人形象和忙碌的码头工人形象有什么区别? 当我检查他们的DockFile时,alpine是这样的(对于alpine v3.12-3.12.7) busybox是这样的 但作为https://alpinelinux.org/about/说 Alpine Linux是围绕musl libc和busybox构建的。 那么到底有什么区别呢? 我也很好奇,许多docker图像(nodejs/ngin

  • 问题内容: 使用Docker时,我们从基础映像开始。我们启动它,创建更改,并将这些更改保存在形成另一个映像的层中。 因此,最终我为自己的PostgreSQL实例提供了一个映像,为我的Web应用程序提供了一个映像,对它们的更改将继续保留。 什么是容器? 问题答案: 图像的实例称为容器。您有一张图像,该图像是您描述的一组图层。如果启动此映像,则该映像具有正在运行的容器。您可以有多个运行中的同一图像容器

  • 我想要主持我的第一个基于Java的网站。我了解到有基于云的服务提供网站托管。但是也有一些未知的术语,比如已经可用的容器和Docker。我对GlassFish,Tomcat等容器知之甚少,但对Docker不太了解。那么码头工人到底是什么?