迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 > Docker >

重启 Docker 容器

作者:迹忆客 最近更新:2023/04/17 浏览次数:

当之前在后台运行的容器停止时,docker 提供了一些我们可以用来重启容器的命令。

在本文中,我们将学习如何在后台运行 Nginx 服务器的情况下重启 docker 容器。 我们还将了解一些命令如何导致容器立即终止。


从 Docker Hub 拉取 Nginx 镜像

首先,我们需要从 docker hub 中拉取一个 Nginx 镜像来运行镜像。 但是,您可以使用 Dockerfile 创建自定义映像。

在您的计算机上打开终端窗口并使用以下命令来拉取图像。

~$ docker pull nginx:alpine

从镜像运行容器

在本节中,我们将在后台运行一个带有 Nginx 服务器的容器。 使用以下命令运行名为 web-app 的容器。

~$ docker run --name web-app -d -p 8000:80 nginx:alpine

在此命令中,我们使用 --name 标志为容器创建名称。 此外,我们还使用了标志 -d,它允许我们在后台运行容器。

最后,我们添加了 -p 标志以将容器的端口发布到主机。 您可以使用以下命令来验证容器是否已启动并正在运行。

~$ docker ps

输出:

CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                  NAMES
c18fa4102fb2   nginx:alpine   "/docker-entrypoint.…"   5 seconds ago   Up 3 seconds   0.0.0.0:8000->80/tcp   web-app

重启正在运行的容器

我们可以使用两种方法来重启容器。 第一种方法使用 docker start 命令,而第二种方法使用 docker restart 命令。

docker start 命令用于启动一个停止的容器,docker restart 命令用于重启一个正在运行的容器。

由于我们的容器已经在运行,使用下面的命令重启 web-app 容器。

~$ docker restart web-app

在重新启动容器后,使用以下命令验证容器是否已启动并正在运行。

~$ docker ps

输出:

CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS        PORTS                  NAMES
c18fa4102fb2   nginx:alpine   "/docker-entrypoint.…"   20 minutes ago   Up 1 second   0.0.0.0:8000->80/tcp   web-app

重启停止的容器

这种方法与前一种方法相同。 我们必须使用 docker stop 命令停止正在运行的容器。

容器停止后,使用 docker start 命令重新启动停止的容器。 执行以下命令以查看其在实践中的工作原理。

~$ docker stop web-app

输出:

web-app

如果运行 docker ps -a 命令列出所有正在运行和已停止的容器,可以看到 web-app 容器的状态为 exited,表示容器已停止。

~$ docker ps -a

输出结果:

CONTAINER ID   IMAGE            COMMAND                  CREATED          STATUS                          PORTS      NAMES
c18fa4102fb2   nginx:alpine     "/docker-entrypoint.…"   32 minutes ago   Exited (0) About a minute ago              web-app

最后,使用以下命令重启容器。

~$ docker start web-app && docker ps

输出:

web-app
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                  PORTS                  NAMES
c18fa4102fb2   nginx:alpine   "/docker-entrypoint.…"   37 minutes ago   Up Less than a second   0.0.0.0:8000->80/tcp   web-app

Docker容器立即退出

上一节中的容器并没有终止,因为容器有一个 Nginx 进程在后台运行。

在某些情况下,如果 docker 容器已完成其进程的执行,它会立即退出。 为了说明这一点,运行以下命令创建一个名为 temp-web-app 的新容器。

~$ docker run -w /com/web-app/ --name temp-web-app -p 8080:80  nginx:alpine pwd

输出:

/com/web-app

请注意 ,此命令在打印工作目录 /com/web-app 后立即终止。 这是因为一旦其主进程执行 pwd 命令,容器就会退出。

因此,像上面这样的命令应该用于测试目的,而不是用于运行带有服务器、数据库或应用程序进程的容器。 使用以下命令检查 temp-web-app 容器的状态。

CONTAINER ID   IMAGE            COMMAND                  CREATED             STATUS                      PORTS                  NAMES
fb051673c15f   nginx:alpine     "/docker-entrypoint.…"   14 minutes ago      Exited (0) 3 minutes ago                           temp-web-app

由于在初始启动期间设置了默认命令,因此任何重新启动容器的尝试都不会起作用。 这意味着在容器的主进程退出时执行 pwd 命令后,容器将始终终止。


总结

我们在本文中学习了如何在 docker 中重启容器。 我们已经介绍了如何启动正在运行和停止的容器。

我们已经了解了运行立即退出且后台没有进程运行的容器的目的。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Linux 中托管 Docker Internal

发布时间:2023/04/18 浏览次数:139 分类:Docker

Docker 允许开发人员通过将应用程序包装在称为容器的标准化单元中来高效地构建、测试和部署应用程序。 在使用 Docker 容器时,您可能会遇到需要将容器与主机连接的场景。

在 Docker 中设置工作目录

发布时间:2023/04/18 浏览次数:82 分类:Docker

在 Docker 中,我们可以通过编辑 Dockerfile 并添加密钥 WORKDIR 来设置我们的工作目录。本文将讨论在 Docker 中更改我们当前和默认的工作目录。

在 Docker 容器中公开多个端口

发布时间:2023/04/18 浏览次数:143 分类:Docker

Docker 容器使用端口来实现万维网上不同设备之间的通信。 在本篇文章中,我们将学习如何使用 Nginx 应用程序在 Docker 容器中公开多个端口。

将用户添加到 Docker 容器

发布时间:2023/04/18 浏览次数:187 分类:Docker

在本文中,我们将学习如何通过实现返回产品数组的 Express 应用程序将用户添加到 Docker 容器。

使用 Docker 网络主机命令

发布时间:2023/04/18 浏览次数:112 分类:Docker

在本文中,我们将学习如何使用 --network 命令将容器添加到主机网络。 如果我们不使用此命令指定网络,我们还将了解如何将容器添加到默认网络。

清除 Docker 容器日志

发布时间:2023/04/18 浏览次数:181 分类:Docker

本文介绍了我们可以用来清除 docker 容器中日志的不同方法。日志是应用程序在特定事件或状态发生时记录的信息,它们帮助我们监控应用程序并采取必要的措施。

Docker 中的守护进程日志位置

发布时间:2023/04/18 浏览次数:175 分类:Docker

本文将讨论守护进程事件以及我们通常可以在哪里找到每个操作系统 (OS) 的守护进程日志。

Dockerfile 中 COPY 和 ADD 命令的区别

发布时间:2023/04/18 浏览次数:158 分类:Docker

在 Dockerfile 中,我们可以使用 COPY 或 ADD 命令复制这些文件。 这些命令在功能上是相同的; 但是,存在一些差异。本文介绍了 Dockerfile 中 COPY 和 ADD 命令之间的区别。

Docker 中的 --rm 标志

发布时间:2023/04/18 浏览次数:77 分类:Docker

本文介绍如何在 docker 中使用 --rm 命令。 此外,它还提供了使用命令的优势。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便