跳到主要内容

Docker 容器启动停止

介绍

Docker 是一个用于开发、发布和运行应用程序的开源平台。它通过容器化技术,将应用程序及其依赖项打包在一起,确保在任何环境中都能一致运行。容器的启动和停止是 Docker 中最基本的操作之一,掌握这些操作是使用 Docker 的基础。

在本教程中,我们将逐步讲解如何启动和停止 Docker 容器,并通过实际案例展示这些操作的应用场景。

启动 Docker 容器

要启动一个 Docker 容器,可以使用 docker run 命令。这个命令会从指定的镜像创建一个新的容器并启动它。

基本语法

bash
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • OPTIONS:可选参数,用于配置容器的行为。
  • IMAGE:要使用的 Docker 镜像。
  • COMMAND:容器启动后要执行的命令。
  • ARG...:传递给命令的参数。

示例

假设我们有一个名为 my-app 的 Docker 镜像,我们可以使用以下命令启动一个容器:

bash
docker run my-app

这个命令会从 my-app 镜像创建一个新的容器并启动它。如果镜像不存在于本地,Docker 会尝试从 Docker Hub 下载它。

后台运行容器

默认情况下,docker run 命令会在前台运行容器。如果你希望容器在后台运行,可以使用 -d 选项:

bash
docker run -d my-app

指定容器名称

你可以使用 --name 选项为容器指定一个名称:

bash
docker run --name my-container my-app

这样,你就可以通过名称来引用容器,而不是使用自动生成的容器 ID。

停止 Docker 容器

要停止一个正在运行的 Docker 容器,可以使用 docker stop 命令。

基本语法

bash
docker stop [OPTIONS] CONTAINER [CONTAINER...]
  • OPTIONS:可选参数。
  • CONTAINER:要停止的容器的名称或 ID。

示例

假设我们有一个名为 my-container 的容器,我们可以使用以下命令停止它:

bash
docker stop my-container

这个命令会向容器发送一个停止信号,并等待容器优雅地停止。如果容器没有在指定的时间内停止,Docker 会强制终止它。

强制停止容器

如果你需要立即停止容器,可以使用 docker kill 命令:

bash
docker kill my-container

这个命令会立即终止容器,而不会等待它优雅地停止。

实际案例

案例 1:启动一个 Web 服务器

假设你有一个基于 Nginx 的 Web 服务器镜像 my-nginx,你可以使用以下命令启动一个容器:

bash
docker run -d -p 8080:80 --name my-web-server my-nginx

这个命令会在后台启动一个名为 my-web-server 的容器,并将容器的 80 端口映射到主机的 8080 端口。你可以通过访问 http://localhost:8080 来访问这个 Web 服务器。

案例 2:停止一个数据库容器

假设你有一个名为 my-db 的 MySQL 数据库容器,你可以使用以下命令停止它:

bash
docker stop my-db

这个命令会停止 my-db 容器,确保数据库在停止前完成所有未完成的事务。

总结

在本教程中,我们学习了如何启动和停止 Docker 容器。我们介绍了 docker rundocker stop 命令的基本用法,并通过实际案例展示了这些操作的应用场景。

掌握这些基本操作是使用 Docker 的基础,希望你能通过本教程更好地理解和使用 Docker。

附加资源

练习

  1. 使用 docker run 命令启动一个基于 alpine 镜像的容器,并在容器中运行 echo "Hello, Docker!" 命令。
  2. 启动一个后台运行的 Nginx 容器,并将容器的 80 端口映射到主机的 8080 端口。
  3. 停止你在练习 2 中启动的 Nginx 容器。

通过完成这些练习,你将进一步巩固对 Docker 容器启动和停止操作的理解。