构建和运行镜像 - Docker中文文档

oneNeko 于 2020-07-14 发布

原始英文文档

前提

完成前一步简介的阅读和安装

介绍

现在,您已经设置了开发环境,您可以开始开发容器化应用程序。通常,开发工作流程如下所示:

在本教程的此阶段,我们将重点放在此工作流程的第1步:创建容器所依赖的镜像。请记住,Docker镜像捕获了容器化进程运行所需的私有文件系统;您需要创建一个镜像,其中包含您的应用程序运行所需要的内容。

设置

让我们下载node-bulletin-board示例项目。这是一个用Node.js编写的简单公告板应用程序。

Git

如果使用的是Git,则可以从GitHub克隆示例项目:

git clone https://github.com/dockersamples/node-bulletin-board
cd node-bulletin-board/bulletin-board-app

使用Dockerfile定义容器

下载项目后,查看公告板应用程序中的Dockerfile。Dockerfile描述了如何为容器组装私有文件系统,并且还可以包含一些元数据,这些元数据描述了如何基于该镜像运行容器。
有关公告板应用程序中使用的Dockerfile的更多信息,请参见Dockerfile示例。

建立并测试镜像

现在您已经有了一些源代码和一个Dockerfile,现在该构建您的第一个镜像,并确保从其启动的容器能够按预期工作。
使用cd命令确保您位于终端或PowerShell 中的目录位于node-bulletin-board/bulletin-board-app中。运行以下命令来构建公告板镜像:

docker build --tag bulletinboard:1.0 .

您将看到Docker逐步完成Dockerfile中的每条指令,逐步构建镜像。如果成功,则构建过程应以Successfully tagged bulletinboard:1.0的信息结束。

将镜像作为容器运行

  1. 运行以下命令以基于新镜像启动容器:
docker run --publish 8000:8080 --detach --name bb bulletinboard:1.0

这里有几个常见的标志:

2.在浏览器中访问localhost:8000来查看您的应用程序。您应该看到公告板应用程序已启动并正在运行。在这一步,您通常会尽一切可能确保容器按预期方式工作。例如,现在是运行单元测试的时候了。
对公告板容器正常工作感到满意后,可以将其删除:

docker rm --force bb

该–force选件停止正在运行的容器,因此可以将其删除。如果先停止运行该容器docker stop bb,则无需使用–force来删除它。

结尾

至此,您已经成功构建了镜像,对应用程序进行了简单的容器化,并确认您的应用程序已在其容器中成功运行。下一步将在Docker Hub上共享您的镜像,以便可以轻松下载它们,并在任何目标计算机上运行它们。