如何基于自定义镜像运行 Docker 容器

DockerBeginner
立即练习

简介

Docker 是一个广受欢迎的容器化平台,它允许开发者在一个一致且隔离的环境中打包和部署应用程序。在本教程中,你将学习如何构建一个自定义的 Docker 镜像,并基于该镜像运行一个 Docker 容器。在本指南结束时,你将对为应用程序创建、管理和运行 Docker 容器的过程有扎实的理解。

理解 Docker 容器

Docker 是一个广受欢迎的开源平台,它使开发者能够在容器化环境中构建、部署和运行应用程序。容器是轻量级、独立且可执行的软件包,其中包含运行应用程序所需的一切,包括代码、运行时环境、系统工具和库。

什么是 Docker 容器?

Docker 容器是一种标准化的软件单元,它将代码及其所有依赖项打包在一起,以便应用程序能够在不同的计算环境中快速、可靠地运行。容器是从 Docker 镜像创建而来的,而 Docker 镜像是创建容器的蓝图。

graph LR A[Docker 镜像] --> B[Docker 容器] B[Docker 容器] --> C[正在运行的应用程序]

Docker 容器的优势

与传统的虚拟化方法相比,Docker 容器具有以下几个优势:

优势 描述
可移植性 容器可以在任何机器上一致地运行,而无需考虑底层基础设施。
高效性 容器共享主机操作系统,这使得它们比虚拟机更轻量级、更高效。
一致性 容器确保应用程序在任何环境中都能始终以相同的方式运行。
可扩展性 容器可以轻松地进行扩展或缩减,以满足不断变化的需求。

Docker 容器的生命周期

Docker 容器的生命周期包括以下几个阶段:

  1. 构建:从 Dockerfile 创建 Docker 镜像。
  2. 分发:将 Docker 镜像存储在注册表中,如 Docker Hub。
  3. 运行:从 Docker 镜像启动一个新容器。
  4. 管理:监控、扩展和维护正在运行的容器。

通过了解 Docker 容器的基础知识,你现在可以继续构建自定义的 Docker 镜像了。

构建自定义 Docker 镜像

要构建自定义 Docker 镜像,你需要创建一个 Dockerfile,它是一个文本文件,包含构建镜像的指令。

创建 Dockerfile

以下是一个 Dockerfile 示例,它基于 Ubuntu 22.04 基础镜像构建自定义镜像,并安装 Apache 网络服务器:

## 使用 Ubuntu 22.04 基础镜像
FROM ubuntu:22.04

## 更新软件包索引并安装 Apache
RUN apt-get update && apt-get install -y apache2

## 设置容器启动时运行的默认命令
CMD ["apache2ctl", "-D", "FOREGROUND"]

构建 Docker 镜像

要从 Dockerfile 构建 Docker 镜像,请在与 Dockerfile 相同的目录中运行以下命令:

docker build -t my-apache-image.

此命令将根据 Dockerfile 中的指令创建一个名为 my-apache-image 的新 Docker 镜像。

检查 Docker 镜像

构建镜像后,你可以使用以下命令列出系统上的所有镜像:

docker images

这将显示 Docker 镜像列表,包括你刚刚创建的 my-apache-image

你还可以使用以下命令检查镜像的详细信息:

docker inspect my-apache-image

这将显示 Docker 镜像的元数据和配置。

现在你有了一个自定义 Docker 镜像,就可以继续基于此镜像运行容器了。

从自定义镜像运行 Docker 容器

既然你已经有了一个自定义的 Docker 镜像,就可以基于该镜像运行一个容器。

启动 Docker 容器

要从 my-apache-image 镜像启动一个新容器,请使用以下命令:

docker run -d -p 80:80 --name my-apache-container my-apache-image

以下是该命令各部分的作用:

  • docker run:启动一个新的 Docker 容器。
  • -d:以分离模式运行容器,这意味着它在后台运行。
  • -p 80:80:将主机上的端口 80 映射到容器内的端口 80,这样你就可以从主机访问该网络服务器。
  • --name my-apache-container:为正在运行的容器指定名称为“my-apache-container”。
  • my-apache-image:用于创建容器的 Docker 镜像名称。

验证正在运行的容器

启动容器后,你可以使用以下命令验证它是否正在运行:

## 列出所有正在运行的容器
docker ps

## 检查容器
docker inspect my-apache-container

docker ps 命令将显示正在运行的容器列表,包括你刚刚启动的 my-apache-container

docker inspect 命令将提供有关正在运行的容器的详细信息,包括其 IP 地址、端口映射和其他配置细节。

访问网络服务器

容器运行后,你可以通过打开网页浏览器并导航到 http://localhost 来访问 Apache 网络服务器。你应该会看到默认的 Apache 欢迎页面。

通过了解如何基于自定义镜像运行 Docker 容器,你现在可以在容器化环境中部署自己的应用程序了。

总结

在本教程中,你已经学习了如何构建自定义 Docker 镜像以及基于该镜像运行 Docker 容器。你探索了创建 Docker 镜像的步骤,包括编写 Dockerfile 和构建镜像。此外,你还学习了如何使用自定义镜像运行 Docker 容器、管理容器的生命周期以及访问正在运行的容器。掌握了这些技能后,你现在可以自信地使用 Docker 容器来打包和部署你的应用程序了。