docker基础(七)之docker start/stop/kill/restart/pause/unpause

2024-03-23 00:20

本文主要是介绍docker基础(七)之docker start/stop/kill/restart/pause/unpause,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 概述
  • 命令速查
  • docker start
    • 语法
    • OPTIONS详解:
  • docker stop
    • 语法
    • OPTIONS详解:
  • docker restart
    • 语法
    • OPTIONS详解:
    • 示例和说明
  • docker kill
    • 语法
    • OPTIONS说明:
  • docker pause
    • 语法
    • 示例
  • docker unpause
    • 语法
    • 示例
  • docker stop 和docker kill区别
  • docker pause和docker unpause的使用场景

概述

用于学习和记录,以下内容来自chatgpt3.5,网络等,补充例子。
本文介绍了docker start/stop/kill/restart/pause/unpause的基础用法,及相关options的详细解释和例子。

docker系列其他文章:docker专栏

命令速查

docker start :启动一个或多个已经被停止的容器
docker stop :停止一个运行中的容器
docker restart :重启容器
docker pause :暂停容器中所有的进程。
docker unpause :恢复容器中所有的进程。

docker start

docker start :启动一个或多个已经被停止的容器

PS:意思就是,这个作用的前提是,这个容器以及被停止了需要重新启动。

语法

docker start [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS详解:

当使用 docker start 命令启动容器时,可以使用不同选项来满足不同的需求,例如:

  • -a, --attach:附着到容器的标准输出。适用于需要实时查看容器的输出信息,比如查看容器的日志或调试容器内部的运行情况。
docker start -a <container_id>
  • --checkpoint --checkpoint-dir:用于从指定的检查点恢复容器。这对于容器迁移或者容器快速恢复非常有用。
docker start --checkpoint=mycheckpoint <container_id>
  • -i, --interactive:保持标准输入打开,即使没有附着到容器。适用于需要与容器进行交互的场景,比如在启动容器后执行命令。
docker start -i <container_id>
  • --restart=always:表示如果容器退出,则始终重新启动容器。适用于需要在容器退出时自动重新启动容器的情况,比如关键服务的容器。
docker start --restart=always <container_id>

这些选项可以根据具体的需求来灵活调整,在启动容器时提供更多的灵活性和控制。

docker stop

docker stop :停止一个运行中的容器

语法

docker stop [OPTIONS] CONTAINER [CONTAINER...]

docker stop 命令用于停止一个或多个正在运行的容器。这个命令会发送一个停止信号给容器,然后容器会进行优雅地关闭。

OPTIONS详解:

  • -t, --time 选项
    这个选项用来指定容器等待多长时间后强制停止,单位为秒。如果容器在指定的时间内无法优雅地关闭,则会被强制停止。默认情况下,Docker 会等待 10 秒后发送 SIGKILL 信号。
docker stop -t 30 <container_id>

这个命令将发送停止信号给容器,并等待 30 秒后如果容器还未关闭则发送 SIGKILL 信号强制关闭。

  • --help 选项
    这个选项用于显示帮助信息,列出 docker stop 命令的用法和选项。
docker stop --help

这个命令会输出关于 docker stop 命令的帮助信息。

这些选项可以根据具体的需求来使用,帮助控制 docker stop 命令的行为。

docker restart

docker restart :重启容器

语法

docker restart [OPTIONS] CONTAINER [CONTAINER...]

docker restart 命令用于重新启动一个或多个已经运行的容器。

OPTIONS详解:

  • --time:指定容器在重启之前的等待时间。
  • --help:显示帮助信息。

示例和说明

  • 重新启动单个容器:
docker restart <container_id>

这个命令将重新启动指定的容器。

  • 重新启动多个容器:
docker restart <container_id_1> <container_id_2> <container_id_3> ...

这个命令将重新启动多个指定的容器。

  • 使用 --time 选项指定重启前的等待时间:
docker restart --time 30 <container_id>

这个命令将重新启动指定的容器,并且在重启前等待 30 秒。这样可以让容器有时间进行优雅地关闭。

docker kill

docker kill :杀掉一个运行中的容器。

语法

docker kill [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS说明:

  • -s :向容器发送一个信号docker kill 命令用于发送信号给容器来停止容器的运行,可以使用不同的选项来控制操作。以下是一些示例和说明:

  • 停止单个容器:

docker kill <container_id>

这个命令将发送 SIGKILL 信号给指定的容器,强制终止容器的运行。

  • 停止多个容器:
docker kill <container_id_1> <container_id_2> <container_id_3> ...

这个命令将发送 SIGKILL 信号给多个指定的容器,强制终止这些容器的运行。

  • 使用选项 -s 指定发送的信号:
docker kill -s SIGTERM <container_id>

这个命令将发送指定的信号(这里是 SIGTERM)给指定的容器,可以使用信号名称或者信号编号。默认的信号是 SIGKILL(编号为 9),一般用于强制终止一个容器。但也可以使用其他信号进行优雅地终止容器,比如 SIGTERM(编号为 15)SIGTERM 是一个终止信号,通常会要求容器优雅地关闭。

  • 与容器交互式地停止:
docker kill -s SIGINT -t 10 <container_id>

这个命令将发送 SIGINT 信号给容器,并且在发送信号后等待 10 秒。SIGINT 是一个终止信号,通常会请求容器进行优雅地关闭。

  • -q, --quiet 选项
    这个选项用于安静模式,命令执行时不会输出任何信息。
docker kill -q <container_id>

这个命令将以安静模式发送 SIGKILL 信号给指定的容器,并且不输出任何信息。

docker pause

docker pause :暂停容器中所有的进程。

语法

docker pause CONTAINER [CONTAINER...]

示例

暂停数据库容器db01提供服务。

docker pause db01

docker unpause

docker unpause :恢复容器中所有的进程。

语法

docker unpause CONTAINER [CONTAINER...]

示例

恢复数据库容器 db01 提供服务。

docker unpause db01

docker pause 命令用于暂停一个或多个正在运行的容器,所有容器内的进程都会被暂停。这可以用于临时暂停容器的运行,

例如在维护或调试容器时。其基本用法如下:

docker pause CONTAINER [CONTAINER...]
docker pause my_container

这个命令将会暂停名为 my_container 的容器。

可以同时暂停多个容器,命令如下:

docker pause container1 container2 container3

如果要恢复暂停的容器,使用 docker unpause 命令:

docker unpause my_container

这个命令将会恢复名为 my_container 的容器。

docker stop 和docker kill区别

docker stop 和 docker kill 都用于停止容器的运行,但它们之间有一些关键的区别:

  1. docker stop:发送一个停止信号给容器,要求容器进行优雅地关闭。容器会收到 SIGTERM 信号,然后有一定的时间进行清理和关闭工作,如保存状态、关闭连接等。如果容器超过指定的时间仍未停止,则 Docker 会发送 SIGKILL 信号来强制停止容器。这样做的目的是尽量避免数据丢失或者状态损坏。
  2. docker kill:发送一个强制终止信号给容器。容器会立即收到 SIGKILL 信号,停止运行,不会有任何清理工作,可能导致数据丢失或者状态损坏。

因此,docker stop 会尝试优雅地关闭容器,而 docker kill 直接强制终止容器的运行。一般来说,建议优先使用 docker stop 来停止容器,以避免可能的数据丢失或损坏,并只在必要时才使用 docker kill。

docker pause和docker unpause的使用场景

docker pause和docker unpause命令在以下场景中可能会有用:

  • 维护操作:当需要对容器进行维护时,可以使用docker pause命令暂停容器的执行。这样可以确保在维护期间容器内的进程暂停,以便进行必要的操作,如修复问题、更新软件等。完成维护后,使用docker unpause命令恢复容器的执行。

  • 资源管理:通过暂停容器,可以释放容器占用的系统资源。这在某些情况下可能很有用,例如当需要为其他重要任务或容器提供更多的资源时,可以暂停一些不紧急的容器,以释放资源。

  • 调试和故障排除:在调试容器时,可以使用docker pause命令暂停容器的执行,以便检查容器内部的状态、日志和进程。这有助于定位和解决问题。一旦调试完成,可以使用docker unpause命令恢复容器的执行。

请注意,暂停容器会导致容器内的进程停止执行,可能会影响容器提供的服务。在使用这些命令时,请确保了解其潜在的影响并谨慎操作。

这篇关于docker基础(七)之docker start/stop/kill/restart/pause/unpause的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/836559

相关文章

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Spring Boot集成Logback终极指南之从基础到高级配置实战指南

《SpringBoot集成Logback终极指南之从基础到高级配置实战指南》Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计,:本文主要介绍... 目录一、Logback简介与Spring Boot集成基础1.1 Logback是什么?1.2 Sprin

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

Docker安装MySQL镜像的详细步骤(适合新手小白)

《Docker安装MySQL镜像的详细步骤(适合新手小白)》本文详细介绍了如何在Ubuntu环境下使用Docker安装MySQL5.7版本,包括从官网拉取镜像、配置MySQL容器、设置权限及内网部署,... 目录前言安装1.访问docker镜像仓库官网2.找到对应的版本,复制右侧的命令即可3.查看镜像4.启

debian12安装docker的实现步骤

《debian12安装docker的实现步骤》本文主要介绍了debian12安装docker的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录步骤 1:更新你的系统步骤 2:安装依赖项步骤 3:添加 docker 的官方 GPG 密钥步骤