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

相关文章

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同