docker容器生命周期管理命令

news2024/9/30 5:31:00

文章目录

  • 前言
  • 1、docker create
    • 2、docker run
    • 2.1、常用选项
    • 2.2、系统
    • 2.3、网络
    • 2.4、健康检查
  • 3、docker start/stop/restart
  • 4、docker kill
  • 5、docker rm
  • 6、docker pause/unpause
  • 总结

前言

在云原生时代,Docker已成为必不可少的容器管理工具。通过掌握Docker常用的容器管理命令,可以提高应用部署和运维的效率。本文将揭秘云原生时代必备的Docker容器管理命令,包括容器的创建、启动、停止、删除以及日常运维中常用的命令和技巧。通过学习本文,读者将能够轻松应对云原生时代的容器管理挑战,提高工作效率,实现更高质量的应用部署和运维管理。

1、docker create

创建一个新的容器但不启动它。语法同docker run。

docker create  [OPTIONS] CONTAINER

示例:
在一个终端执行docker create,在另一个终端执行docker events。

# 第一个终端
king@king-server:~$ docker create nginx
0f267601d5c102d6f8a894d2a5f719803d3f7010cf1b380cce4ff92396696542

# 第二个终端
king@king-server:~$ docker events
2024-01-26T13:26:57.617217238Z container create 0f267601d5c102d6f8a894d2a5f719803d3f7010cf1b380cce4ff92396696542
 (image=nginx, maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>, name=eager_meitner)

2、docker run

创建一个新的容器并运行一个命令。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

2.1、常用选项

参见docker run常用选项

2.2、系统

  • –cap-add:添加linux功能
  • –cap-drop:删除linux功能
# --cap-add=ALL表示给容器赋予所有的权限,即允许容器内的进程拥有宿主机上的所有权限。
# --cap-drop=MKNOD 表示从容器中剥夺创建设备节点的能力。这意味着容器内的进程将无法创建设备节点,
# 如 /dev/null、 /dev/zero 等
docker run --cap-add=ALL --cap-drop=MKNOD ...
docker run --cap-add=SYS_ADMIN ...
docker run --cap-add=CAP_SYS_ADMIN ...
  • –isolation:指定容器的隔离技术。

linux系统:只支持default,即linux命名空间隔离技术。
windows系统:default:表示使用docker守护进程配置的选项,否则默认使用process选项。
process:命名空间隔离
hyperv:基于Hyper-V 管理程序基于分区的隔离

  • –platform:设置平台,如果服务器支持多个平台。
  • –runtime:用于此容器使用的运行时。
  • –security-opt:通过指定–security opt标志来覆盖每个容器的默认标签方案。
  • –shm-size:设置/dev/shm设备的大小,/dev/shm是一个基于内存的临时文件系统。
  • –storage-opt:容器的存储驱动程序选项
  • –sysctl:设置系统参数,默认 map[]。
  • –ulimit:设置Ulimit选项,默认[]。

2.3、网络

  • –ip:通过该参数,可以在创建容器时手动指定容器使用的ip4地址。
  • –ip6:ip6地址。
  • –dns 设置自定义dns服务器,将修改容器中 /etc/resolv.conf 文件。
  • –dns-option:设置DNS选项,将修改容器中 /etc/resolv.conf 文件。
  • –dns-search:设置自定义DNS搜索域名,将修改容器中 /etc/resolv.conf 文件。
  • –link-local-ip:设置一个或多个容器的以太网设备的链路本地IPv4/IPv6地址。
  • –mac-address:容器Mac地址。
  • –network:将容器加入到指定网络。
  • –network-alias:为容器添加网络范围的别名。

2.4、健康检查

  • –health-cmd:健康检查命令。
  • –health-interval:健康检查频率(ms|s|m|h),默认0s。
  • –health-retries:健康检查重试次数,连续失败指定次数则判断为不健康。
  • –health-start-period:设置启动容器的初始化时间,在此期间的健康检查不作为参考依据,(ms|s|m|h),默认0s。
  • –health-timeout:每一次检查超时时间(ms|s|m|h),默认0s。
  • –no-healthcheck:禁用健康检查。

3、docker start/stop/restart

  • docker start :启动一个或多个已经被停止的容器。
  • docker stop :停止一个运行中的容器。
  • docker restart :重启容器。

示例:

docker restart mynginx
docker stop mynginx
docker start mynginx

4、docker kill

杀掉一个运行中的容器。

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

OPTIONS说明:
-s :向容器发送一个信号。
在这里插入图片描述
示例:

docker kill -s KILL mynginx
docker kill -s TERM mynginx

如果容器终止时的状态对用户而言很重要,用户可能会想要了解docker kill 和docker stop之间的区别。docker kill 的行为和标准的kill 命令行程序并不相同。kill 程序的默认工作方式是向指定的进程发送
TERM信号(即信号值为15)。这个信号表示程序应该被终止,但是不要强迫程序终止。当这个信号被处理时,大多数程序将执行某种清理工作,但是该程序也可以执行其他操作,包括忽略该信号。
而docker kill 对正在运行的程序使用的是KILL信号,这使得该进程没办法处理终止过程。这就意味着一些诸如包含运行进程ID之类的文件可能会残留在文件系统中。根据应该用程序管理状态的能力,如果再次启动容器,这可能会也可能不会造成问题。docker stop 命令则像kill 命令那样工作,发送的是一个TERM型号。

5、docker rm

删除一个或多个容器。

docker rm [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS说明:
-f :通过 SIGKILL 信号强制删除一个运行中的容器。
-l :移除容器间的网络连接,而非容器本身。
-v :删除与容器关联的卷。

示例:
删除所有的容器。

docker rm `docker ps -f status=exited -q`

6、docker pause/unpause

  • docker pause :暂停容器中所有的进程。
  • docker unpause :恢复容器中所有的进程。
docker pause CONTAINER [CONTAINER...]
docker unpause CONTAINER [CONTAINER...]

总结

(1)docker的create命令和run命令区别在于create只创建容器,而run命令除了创建容器还会连接网络和启动容器;start命令会连接网络和启动容器。即docker run = docker create + docker start。
(2)docker stop发送的信号值默认是15,但是nginx构建的时候会指定为3;docker kill发送的信号值是9,强制删除。
(3)docker run使用最多的参数:

  • -d, --detach:后台运行容器并打印容器id。
  • -i, --interactive:保持标准输入设备处于打开状态。
  • -t, --tty:分配一个伪终端设备。
  • –rm:当容器退出时,自动删除容器。
  • -p, --publish:发布容器端口和主机端口的映射。
  • -P, --publish-all:将所有暴露的端口发布到主机随机端口。
  • –entrypoint:覆盖镜像默认程序入口。
  • –name:指定容器名称。
  • –health-cmd:健康检查命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1413749.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

派网AX50C做多宽带路由和核心交换机配置实战教程

接近300办公人员的工厂需要网络升级&#xff0c;我规划设计和部署实施了以下方案&#xff0c;同样是简约不简单&#xff0c;在满足性能需求稳定性的前提下&#xff0c;既有经济性&#xff0c;又有安全性。 派网做路由器&#xff0c;刚好开启默认防病毒策略&#xff0c;省下来一…

【QT+QGIS跨平台编译】之十一:【libzip+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、libzip介绍二、文件下载三、文件分析四、pro文件五、编译实践一、libzip介绍 libzip是一个开源C库,用于读取,创建和修改zip文件。 libzip可以从数据缓冲区,文件或直接从其他zip归档文件直接复制的压缩数据中添加文件。在不关闭存档的情况下所做的更改可以还原…

TCP 状态转换以及半关闭

TCP 状态转换&#xff1a; 上图中还没有进行握手的时候状态是关闭的。 三次握手状态的改变&#xff1a; 客户端发起握手。 调用 connect() 函数时状态转化为&#xff1a;SYN_SENT。调用 listen() 函数时状态转换为&#xff1a;LISTEN。ESTABLISHED是被连接的状态。 四次挥手…

林浩然的哲学奇遇记:与罗素一起穿越西方哲学史

林浩然的哲学奇遇记&#xff1a;与罗素一起穿越西方哲学史 The Philosophical Adventures of Lin Haoran: Journeying Through Western Philosophy with Russell 在一个阳光灿烂的早晨&#xff0c;林浩然同学迎着微风&#xff0c;拿着一本厚重的罗素名著《西方哲学史》&#xf…

了解维特比算法:通信系统和自然语言处理中解码的基石

一、介绍 在数字通信和信号处理领域&#xff0c;维特比算法是一种革命性的纠错和解码方法。该算法以 1967 年推出的 Andrew Viterbi 的名字命名&#xff0c;已成为数字通信和自然语言处理领域的基础。本文旨在深入研究维特比算法的复杂性&#xff0c;探讨其理论基础、实际应用以…

通俗易懂理解小波池化以及WaveCNet网络模型

重要说明&#xff1a;本文从网上资料整理而来&#xff0c;仅记录博主学习相关知识点的过程&#xff0c;侵删。 一、参考资料 github代码&#xff1a;WaveCNet 小波变换和曲波变换用于池化层 通俗易懂理解小波变换(Wavelet Transform) 二、相关介绍 关于小波变换的详细介绍…

C#,数据检索算法之插值搜索(Interpolation Search)的源代码

数据检索算法是指从数据集合&#xff08;数组、表、哈希表等&#xff09;中检索指定的数据项。 数据检索算法是所有算法的基础算法之一。 本文提供插值搜索&#xff08;Interpolation Search&#xff09;的源代码。 1 文本格式 using System; namespace Legalsoft.Truffer.…

极限【高数笔记】

【分类】分为了两大类&#xff0c;一个是数列的极限&#xff0c;一个是函数的极限 【数列的极限】 1.定义&#xff1a; 简单来讲&#xff0c;就是&#xff0c;当n无限趋近于无穷时&#xff0c;数列{an}无限趋近一个常数A&#xff0c;此时&#xff0c;常数A就是它们此时情况下的…

三极管实际电路设计

上图电路有个致命缺陷。那就是Q2正常我们是用NPN三极管。而上图用了PNP。导致MOS管高低电平都无法关闭。 解决方法&#xff1a; 把R2减小为200欧、或者330欧姆。 &#xff08;因为MOS打开需要压差&#xff0c;把SG端压差减小到规定以下就可以关闭&#xff09;。 同时增大R1为2…

RustDesk私有化部署,自建远程桌面搭建教程

以linux操作系统为例&#xff1a; 解压安装 # 使用wget进行下载1.1.8-2版本&#xff08;最新版本可以看上述发布地址&#xff09; wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.8-2/rustdesk-server-linux-amd64.zip # 使用unzip解压 unzip rust…

防火墙综合实验

实验需求&#xff1a; 1、生产区在工作时间内可以访问服务器区&#xff0c;仅可以访问http服务器。 2、办公区全天可以访问服务器区&#xff0c;其中&#xff0c;10.0.2.20可以访问FTP服务器和HTTP服务器&#xff0c;10.0.2.10仅可以ping通10.0.3.10。 3、办公区在访问服务器…

Chain-of-Thought Prompting Elicits Reasoning in Large Language Models导读

通过生成一系列中间推理步骤&#xff08;即“思维链”&#xff09;显著提高大型语言模型进行复杂推理的能力 这篇论文探讨了如何通过生成一系列中间推理步骤&#xff08;即“思维链”&#xff09;显著提高大型语言模型进行复杂推理的能力。研究人员使用一种简单的方法——思维…

BAT学习笔记:常用指令详解及图示

文章目录 一、 &#xff08;关闭本行命令回显&#xff09;详解及图示二、echo off&#xff08; 关闭命令回显&#xff09;详解及图示三、%VAR_NAME% (取变量值&#xff09;详解四、set (设置变量&#xff09;详解及图示五、if (条件判断) 详解及图示六、not (条件取反&#xff…

Elasticsearch8.11集群部署

集群就是多个node统一对外提供服务&#xff0c;避免单机故障带来的服务中断&#xff0c;保证了服务的高可用&#xff0c;也因为多台节点协同运作&#xff0c;提高了集群服务的计算能力和吞吐量。ES是一个去中心化的集群&#xff0c;操作一个节点和操作一个集群是一样的&#xf…

podman+centos和docker+alpine中作性能对比遇到的问题及解决

1.dockeralpine中遇到这个问题 这是由于缺少相关的配置和依赖造成的 通过以下命令在alpine中安装相关配置 apk add --no-cache build-base cairo-dev cairo cairo-tools jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev 2.alpine中python找…

Likeshop多商户商城源码系统,支持二开

在电商行业高速发展的当下&#xff0c;拥有一套功能强大、易于操作的开源商城系统至关重要。Likeshop多商户商城系统正是这样一款集H5、小程序、独立APP于一体的开源电商解决方案&#xff0c;助力商家实现智能营销。 一、产品简介 Likeshop多商户商城系统为商家提供了丰富的营…

使用代码取大量2*2像素图片各通道均值,存于Excel文件中。

任务是取下图RGB各个通道的均值及标签&#xff08;R, G&#xff0c;B&#xff0c;Label&#xff09;,其中标签由图片存放的文件夹标识。由于2*2像素图片较多&#xff0c;所以将结果放置于Excel表格中&#xff0c;之后使用SVM对他们进行分类。 from PIL import Image import os …

STM32 freertos 使用软件模拟串口uart

如题&#xff0c;为什么要这样做&#xff1f; 最近做的一个项目上使用了74HC595作为指示灯板使用&#xff1b; 这个灯板与驱动板是通过排线连接&#xff0c;排线约25cm长&#xff1b; 在实验室测试一切正常&#xff0c;发到客户手上使用就出现了某个LED跳动情况&#xff1b;…

JOSEF约瑟 静态中间继电器 RZY-600D 110VDC 六常开 导轨安装

RZ-D系列中间继电器 系列型号&#xff1a; RZY-004D中间继电器 RZL-004D中间继电器 RZY-022D中间继电器 RZL-022D中间继电器 RZY-112D中间继电器 RZL-112D中间继电器 RZY-202D中间继电器 RZL-202D中间继电器 RZY-002D中间继电器 RZL-002D中间继电器 RZY-060D中间继电器 RZL-060…

SpringCloud-Knife4j文档聚合

在微服务架构下&#xff0c;如果给每个微服务都配置文档&#xff0c;那么每个微服务的接口文档都有自己独立的访问地址&#xff0c;这样要一个个打开每个微服务的文档非常麻烦。一般我们会采用聚合的办法&#xff0c;将所有微服务的接口整合到一个文档中&#xff0c;具体做法有…