docker生命周期管理命令

文章目录

  • 前言
  • 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.rhkb.cn/news/246049.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[UE]无法接收OnInputTouchBegin事件

遇到问题 想做一个鼠标按住左键选中Actor拖动而旋转的功能&#xff0c;想法是通过OnInputTouchBeginOnInputTouchEndTick实现。但是却无法接收OnInputTouchBegin与OnInputTouchEnd事件。 解决方案 想要触发OnInputTouchBegin事件 1.需要设置勾选ProjectSettings->Input-&…

.net访问oracle数据库性能问题

问题&#xff1a; 生产环境相同的inser语句在别的非.NET程序相应明显快于.NET程序&#xff0c;执行时间相差比较大&#xff0c;影响正常业务运行&#xff0c;测试环境反而正常。 问题详细诊断过程 问题初步判断诊断过程&#xff1a; 查询插入慢的sql_id 检查对应的执行计划…

Python zip函数

在Python编程中&#xff0c;zip()函数是一个功能强大而灵活的工具&#xff0c;用于将多个可迭代对象&#xff08;如列表、元组、字符串等&#xff09;组合成一个元组的序列。本文将深入探讨zip()函数的用法、语法、示例代码&#xff0c;并探讨其在实际编程中的应用场景。 什么…

HNU-数据挖掘-实验2-数据降维与可视化

数据挖掘课程实验实验2 数据降维与可视化 计科210X 甘晴void 202108010XXX 文章目录 数据挖掘课程实验<br>实验2 数据降维与可视化实验背景实验目标实验数据集说明实验参考步骤实验过程1.对数据进行初步降维2.使用无监督数据降维方法&#xff0c;比如PCA&#xff0c;I…

EasyExcel实现导出图片到excel

pom依赖&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.0</version> </dependency> 实体类&#xff1a; package com.aicut.monitor.vo;import com.aicut.monit…

Django开发_20_form表单前后端关联(2)

根据上一篇文章的代码,进一步了解掌握GET,POST的运行机制 一、实例代码 views.py: def show_reverse(request):if request.method "GET":return redirect(reverse("work4:fill"))if request.method "POST":hobby request.POST.get("h…

kafka summary

最近整体梳理之前用到的一些东西&#xff0c;回顾Kafka的时候好多东西都忘记了&#xff0c;把一些自己记的比较模糊并且感觉有用的东西整理一遍并且记忆一遍&#xff0c;仅用于记录以备后续回顾 Kafka的哪些场景中使用了零拷贝 生产者发送消息&#xff1a;在 Kafka 生产者发送…

暴力破解

暴力破解工具使用汇总 1.查看密码加密方式 在线网站&#xff1a;https://cmd5.com/ http://www.158566.com/ https://encode.chahuo.com/kali&#xff1a;hash-identifier2.hydra 用于各种服务的账号密码爆破&#xff1a;FTP/Mysql/SSH/RDP...常用参数 -l name 指定破解登录…

windows定时任务的查看、取消、启动和创建

一、查看 Windows 自动执行的指令 1.使用任务计划程序&#xff1a;任务计划程序是 Windows 内置的工具&#xff0c;可以用于创建、编辑和管理计划任务。您可以按照以下步骤查看已设置的计划任务&#xff1a; 1.1 按下 Win R 键&#xff0c;然后输入 “taskschd.msc”&#xff…

Bitbucket第一次代码仓库创建/提交/创建新分支/合并分支/忽略ignore

1. 首先要在bitbucket上创建一个项目&#xff0c;这个我没有权限创建&#xff0c;是找的管理员创建的。 管理员创建之后&#xff0c;这个项目给了我权限&#xff0c;我就可以创建我的代码仓库了。 2. 点击这个Projects下的具体项目名字&#xff0c;就会进入这样一个页面&#…

docker 存储管理

文章目录 docker 存储管理容器存储方案docker 容器存储解决方案 docker 存储驱动基本概述存储驱动的选择原则主流的 docker 存储驱动docker 版本支持的存储驱动 overlay2 存储驱动OverlayFSoverlay2 存储驱动要求配置 docker 使用 overlay2 驱动 overlay2 存储驱动的工作机制Ov…

Azure Private endpoint DNS 记录是如何解析的

Private endpoint 从本质上来说是Azure 服务在Azure 虚拟网络中安插的一张带私有地址的网卡。 举例来说如果Storage account在没有绑定private endpoint之前&#xff0c;查询Storage account的DNS记录会是如下情况&#xff1a; Seq Name …

Hive实战 —— 电商数据分析(全流程详解 真实数据)

目录 前言需求概述数据清洗数据分析一、前期准备二、项目1. 数据准备和了解2.确定数据粒度和有效列3.HDFS创建用于上传数据的目录4.建库数仓分层 5.建表5.1近源层建表5.2. 明细层建表为什么要构建时间维度表&#xff1f;如何构建时间维度表&#xff1f; 5.3 轻聚层建表6. 指标数…

eduSRC那些事儿-2(sql注入类+文件上传类)

点击星标&#xff0c;即时接收最新推文 本文对edusrc挖掘的部分漏洞进行整理&#xff0c;将案例脱敏后输出成文章&#xff0c;不包含0DAY/BYPASS的案例过程&#xff0c;仅对挖掘思路和方法进行相关讲解。 sql注入类 sql注入配合万能密钥进后台 在内网中扫描到网络运维资料管理系…

Linux中断 -- 中断路由、优先级、数据和标识

目录 1.中断路由 2.中断优先级 3.中断平衡 4.Linux内核中重要的数据结构 5.中断标识 承前文&#xff0c;本文从中断路由、优先级、数据结构和标识意义等方面对Linux内核中断进行一步的解析。 1.中断路由 Aset affinity flow GIC文中有提到SPI类型中断的路由控制器寄存器为…

Python基础语法:代码规范、判断语句与循环语句

目录 一、代码规范 二、判断语句 三、循环语句 总结&#xff1a; Python是一种高级、动态类型的编程语言&#xff0c;其语法清晰、简洁&#xff0c;易于学习。本文将介绍Python基础语法中的代码规范、判断语句和循环语句。 一、代码规范 良好的代码规范可以提高代码的可读…

element-ui 树形控件 实现点击某个节点获取本身节点和底下所有的子节点数据

1、需求&#xff1a;点击树形控件中的某个节点&#xff0c;需要拿到它本身和底下所有的子节点的id 1、树形控件代码 <el-tree:data"deptOptions"node-click"getVisitCheckedNodes"ref"target_tree_Speech"node-key"id":default-ex…

Unity - gamma space下还原linear space效果

文章目录 环境目的环境问题实践结果处理要点处理细节【OnPostProcessTexture 实现 sRGB 2 Linear 编码】 - 预处理【封装个简单的 *.cginc】 - shader runtime【shader需要gamma space下还原记得 #define _RECOVERY_LINEAR_IN_GAMMA】【颜色参数应用前 和 颜色贴图采样后】【灯…

tee漏洞学习-翻译-1:从任何上下文中获取 TrustZone 内核中的任意代码执行

原文&#xff1a;http://bits-please.blogspot.com/2015/03/getting-arbitrary-code-execution-in.html 目标是什么&#xff1f; 这将是一系列博客文章&#xff0c;详细介绍我发现的一系列漏洞&#xff0c;这些漏洞将使我们能够将任何用户的权限提升到所有用户的最高权限 - 在…

WEB安全渗透测试-pikachuDVWAsqli-labsupload-labsxss-labs靶场搭建(超详细)

目录 phpstudy下载安装 一&#xff0c;pikachu靶场搭建 1.下载pikachu 2.新建一个名为pikachu的数据库 3.pikachu数据库配置 ​编辑 4.创建网站 ​编辑 5.打开网站 6.初始化安装 二&#xff0c;DVWA靶场搭建 1.下载DVWA 2.创建一个名为dvwa的数据库 3.DVWA数据库配…