将 Docker 镜像作为容器运行

Docker 允许您使用 Docker 映像创建容器化、打包和隔离的环境,称为 Docker 容器。在这些 Docker 容器中,您可以构建、测试甚至部署您的应用程序。这使您可以轻松地与其他开发人员共享您的应用程序运行时环境。所有这一切都是可能的,因为有一个名为 Docker 镜像的只读模板。

您可以直接从任何 Docker 注册表(例如 Dockerhub)中提取 Docker 镜像,或者使用 Dockerfile 中的 bse 镜像来构建您自己的自定义镜像。然后您可以使用 Docker build 命令来构建您的 Docker 镜像。准备好 Docker 映像后,您可以使用 Docker run 命令创建与该映像关联的容器。然后,您可以通过容器的 bash 访问应用程序运行时环境。

所有这些都可以使用简单的 Docker 命令来完成。让我们讨论将 Docker 镜像作为容器运行的所有相关命令。

将 Docker 镜像作为容器运行

要运行与映像关联的容器,您的机器中需要已经存在一个映像。创建图像有两种不同的方法。

  • 直接从 Dockerhub 拉取镜像。

  • 使用 Dockerfile 创建镜像。

首先,让我们尝试直接从 Dockerhub 注册表中拉取镜像。我们将尝试使用 Docker pull 命令拉取最新版本的 Ubuntu 镜像。为此,请执行下面提到的命令。

$ docker pull ubuntu:latest

如果您的机器中还没有具有相同摘要的映像,守护程序将尝试从 Dockerhub 中提取它。如果您已经有一个类似的图像,它不会拉出一个新的图像,而只是创建一个现有图像的副本。

要检查拉取是否成功,您可以列出所有图像。

$ docker images

你会发现镜像已经成功拉取了。

现在您已准备好 ubuntu 映像,让我们使用 Docker run 命令来运行与该映像关联的容器。

$ docker run -it --name=ubuntucontainer ubuntu bash

在上面的命令中,我们使用了交互和伪 TTY 选项,这将允许我们通过终端驱动程序与容器交互。我们已经使用 name 选项为容器命名。最后,我们指定了镜像的名称和容器启动后需要运行的命令。在这个命令中,命令是 bash,它可以让我们访问容器的 bash。

执行此命令后,您应该可以访问容器内的 Ubuntu 环境。您可以像使用 Ubuntu 机器一样与容器进行交互。要检查容器的状态,可以使用以下命令。

$ docker ps

此命令用于列出所有活动容器。

$ docker ps -a

此命令用于列出您机器中的所有现有容器。

另一种方法是使用 Dockerfile 创建映像。考虑下面的 Dockerfile。

FROM ubuntu:latestWORKDIR /app

在上面的 Dockerfile 中,我们使用了 FROM 指令,它将允许我们使用 ubuntu:latest 镜像作为我们的基础镜像。我们已经使用 WORKDIR 指令将 /app 目录设置为默认工作目录。您现在可以使用 Docker build 命令构建与此 Dockerfile 关联的映像。

$ docker build -t myubuntu:latest .

在这里,我们使用了 -t 选项,它允许我们为图像指定名称和标签。末尾的点指定 Dockerfile 的路径,即当前目录。执行此命令后,您可以通过列出图像来检查图像创建。

$ docker images

现在,您可以再次使用 Docker run 命令来运行与映像关联的容器。

$ docker run -it --name=ubuntucontainer myubuntu:latest bash

即使你的机器上没有镜像,你也可以直接使用 Docker run 命令。假设,您要创建一个与 centos 映像相关联的容器。可以直接使用下面的命令。

$ docker run -it --name=centosinstance centos:latest bash

在执行 Docker run 命令时,守护进程将首先检查您的系统上是否有 centos 映像。如果没有找到,就会在后台执行Docker pull命令拉取centos镜像。完成后,它将执行 Docker start 命令以在后台启动与 centos 映像关联的容器。之后,它将使用 Docker run 命令来运行容器。所有这些都发生在后台。

综上所述,即使没有镜像,也可以直接使用 Docker run 命令运行与镜像关联的 Docker 容器。或者你可以先拉取或构建一个 Docker 镜像,然后使用 Docker run 命令创建一个容器。