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

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

docker如何删除悬空镜像

《docker如何删除悬空镜像》文章介绍了如何使用Docker命令删除悬空镜像,以提高服务器空间利用率,通过使用dockerimage命令结合filter和awk工具,可以过滤出没有Tag的镜像,并将... 目录docChina编程ker删除悬空镜像前言悬空镜像docker官方提供的方式自定义方式总结docker

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念