使用 Docker 容器

0 股票
0
0
0
0

介绍

Docker 是一款流行的容器化工具,它为软件应用程序提供一个包含运行所需一切文件的文件系统。使用 Docker 容器可以确保软件无论部署在何处都能表现一致,因为它的运行时环境具有高度一致性。在本教程中,我们将简要概述 Docker 镜像和 Docker 容器之间的关系。然后,我们将详细介绍如何运行、启动、停止和删除容器。.

概述

我们可以将 Docker 镜像视为用于创建 Docker 容器的裸机模板。镜像通常以根文件系统为基础,并以清晰的只读层形式添加文件系统更改及其相应的执行参数。与典型的 Linux 发行版不同,Docker 镜像通常只包含运行应用程序所需的裸机资源。镜像本身是无状态的,不会发生改变。相反,它们构成了 Docker 容器的起点。使用 `docker run` 命令启动镜像,该命令通过在镜像之上添加读写层来创建容器。这种在读写层之上添加只读层的组合被称为联合文件系统。当运行中的容器中的文件发生更改时,该文件会从只读空间复制到读写层,并在读写层中应用更改。读写层中的版本会隐藏原始文件,但不会删除它。读写层中的更改仅存在于单独的容器实例中。当容器被删除时,除非采取措施保留更改,否则所有更改都将丢失。.

如何使用 Docker 容器
  1. 创建两个 Docker 容器
  2. 重启第一个容器。
  3. 删除这两个容器。

使用容器

每次你使用该命令时 docker run 使用此功能时,它会根据您指定的图像创建一个新容器。这可能会造成一些困惑,所以让我们来看一些示例:

步骤 1:创建两个容器

执行命令 Docker 以下命令使用 Ubuntu 基础镜像创建一个新容器。. -t 它给我们提供了一个终端, -我 它允许我们与之交互。我们遵循Ubuntu基础镜像Docker文件中的默认命令, 狂欢我们依靠它把自己封闭起来。.

docker run -ti ubuntu

命令行将发生变化,显示我们以 root 用户身份进入容器,后面跟着 12 个字符的容器 ID。.

root@11cc47339ee1:/#

我们对文件夹中的文本反射进行了更改 /tmp 我们创建一个容器,然后使用 我们用它来确认文件是否已成功保存。.

echo "Example1" > /tmp/Example1.txt
cat /tmp/Example1.txt
Output
Example1

现在我们离开集装箱吧。.

exit

Docker 容器不会在执行完命令后立即运行,因此当我们退出 bash shell 时,我们的容器已经停止了。如果该命令 附言 如果我们运行命令来显示正在运行的容器,我们将看不到我们的命令。.

docker ps
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

如果旗帜 -一个 添加显示所有容器(无论已停止还是正在运行)的命令,我们的容器就会出现在列表中:

docker ps -a
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11cc47339ee1 ubuntu "/bin/bash" 6 minutes ago Exited (127) 8 seconds ago small_sinoussi

容器创建时,会被分配一个容器 ID 和一个随机生成的名称。在本例中, 11cc47339ee1 容器 ID 和 小正弦波 这是一个随机生成的名字。. ps -a 这些值,以及容器所基于的镜像(Ubuntu)、容器的创建时间(六分钟前)和运行的命令(/bin/bash),都会被输出。输出还会提供容器的状态(已退出)以及容器处于该状态的时间(六秒前)。如果容器仍在运行,则状态会显示为«up»,后面会显示其运行时间。.

如果我们再次运行相同的命令,将会创建一个全新的容器:

docker run -ti ubuntu

我们可以通过命令行中的标识符不同来判断这是一个新容器,而且当我们查找 Example1 文件时,却找不到它:

cat /tmp/Example1
Output
cat: /tmp/Example1: No such file or directory

这看起来好像数据消失了,但实际上并没有。现在我们退出第二个容器,可以看到它和我们创建文件所在的第一个容器都还在系统中。.

exit

当我们再次列出容器时,两者都出现了:

docker ps -a
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6e4341887b69 ubuntu "/bin/bash" About a minute ago Exited (1) 6 seconds ago kickass_borg
11cc47339ee1 ubuntu "/bin/bash" 13 minutes ago Exited (127) 6 minutes ago small_sinoussi

步骤 2:重启第一个容器

要重启现有容器,我们使用带有 `-a` 标志的 `start` 命令连接到该容器,并使用 `-i` 标志使其变为交互式,后跟容器 ID 或名称。请务必在以下命令中替换为您的容器 ID:

docker start -ai 11cc47339ee1

我们再次回到了容器 bash 提示符,当我们使用 cat 命令查看之前创建的文件时,它仍然存在。.

cat /tmp/Example1.txt
Output
Example1

现在我们可以退出容器了:

exit

此输出表明,容器内部所做的更改在停止和启动容器后仍然保留。只有当容器被移除时,内容才会被删除。此示例还表明,更改仅限于单个容器。当我们启动第二个容器时,它反映了镜像的原始状态。.

步骤 3:删除两个容器

我们创建了两个容器,接下来我们将通过删除它们来结束本简短教程。docker rm 命令只能删除已停止的容器,它允许您指定一个或多个容器的名称或 ID,因此我们可以使用以下命令删除这两个容器:

docker rm 11cc47339ee1 kickass_borg
Output
11cc47339ee1
kickass_borg

这两个容器以及我们对它们所做的任何更改现在都已消失。.

结果

我们仔细研究一下这个食谱。 docker run 我们已经了解了它每次运行时如何自动创建一个新容器。我们也了解了如何查找已停止的容器、启动它以及连接到它。如果您想了解更多关于容器管理的知识,您可能会对《Docker 容器命名指南:3 个入门技巧》感兴趣。.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

您可能也喜欢