Docker之RUN、COMMAND、ENTRYPOINT辨析

news2024/10/6 0:34:50

一  回顾docker一些命令

①  run create start 的辨析

docker 'run'   '等价'  docker 'create' && docker 'start'

容器(动态) = 镜像(静态) '+' 读写层

1) create 命令为'指定的镜像(image)'添加了一个'可读写层',构成了一个'新'的容器

  注意:这个容器并'没有'运行

2) start命令为'容器文件系统'创建了一个'进程'隔离空间

  注意:每一个容器'只能够有一个'进程隔离空间

3) run 命令'先是'利用镜像创建了一个容器,然后'运行'这个容器

  注意:这个命令'隐藏了'两个'create、start'命令的细节

②  获取容器在宿主机的PID

docker inspect -f '{{ .State.Pid }}' container_name

备注: 在容器内表现为'pid=1'

tail /proc/${Pid}/cmdline;echo  --> 查看'进程信息'

docker inspect --format详解 

③  容器资源使用

1)直接  --> 使用docker stats命令来'显示'容器使用的'系统资源'

  --no-stream :展示'当前状态'就直接退出了,不再实时更新

  --no-trunc  :'不截断'输出,会'动态'刷新

 现象: 默认情况下,stats 命令会'每隔 1 秒钟'刷新一次输出的内容直到你按下 'ctrl + c'

 常用: docker stats --no-trunc container_id --> 可以查看'指定'container

2)间接  -->  核心是获取'容器'所对应所在宿主机'PID',就可以使用'top、pmap、ps'等命令

④  查看容器的完整命令

docker ps --no-trunc               --> 显示容器内'服务启动''完整'的命令

docker ps -q                       --> '静默'模式,只显示'容器编号'

docker ps -s                       --> 查看容器所占的'磁盘'大小

docker rm ${docker ps -q -a}       --> 删除全部'非运行态'的容器

 

 

悬浮镜像dangling image 产生的原因和处理方法

+++++++++++++++  "悬空镜像的特征"  +++++++++++++++

1)* 没有被其他镜像'引用'
	
2) * 在'docker images'的输出中,列'TAG'为'<none>'值

3) * 在'docker images'的输出中,列''REPOSITORY''为可能有值

 

④  save 和 load

docker save -o (--output) *.tar   镜像名  --> 一般将'镜像'打成'tar'包  

备注: 也可以通过 '>' 重定向保存

docker load -i (--input) images.tar     --> 将'tar'加载成镜像

备注: 也可以通过 '<' 读取tar文件

⑤⑥⑦⑧⑨⑩ 

二   Dockerfile指令的回顾

官网Dockerfile参考

①  Dockerfile指令之RUN

 

+++++++++++++++++ "重点" +++++++++++++++++

1)RUN 执行的命令不是'宿主机的',而是'基镜像'带的

2)Dockerfile中可以有许'多个RUN命令',避免镜像'过多'分层,一般使用一个RUN通过'&&'连接

   说明: 每执行一次'RUN',镜像就'增加'一层

3)场景: 一般做一些'初始化'或'安装'软件的动作

4)两种'执行'模式

  RUN <command>                          --> 'shell 模式(常用)'

  RUN ["executable", "param1", "param2"] --> 'exec' 模式 -->"json数组"、"双引号"

 

②  Dockerfile指令之CMD

备注: 容器'启动'后执行的'默认'命令

1)以"exec"模式运行一个'可执行'的文件并提供参数

2)作为'ENTRYPOINT'指定参数

3)以"shell form",也即以"/bin/sh -c"的方法执行命令

 

+++++++++++++ "如何改变容器启动命令的默认行为"  +++++++++++++

1)通过 docker run 传递 '命令或参数'

③  Dockerfile指令之ENTRYPOINT

+++++++++++++++  'ENTRYPOINT和CMD'的'异同'点  +++++++++++++++

1)ENTRYPOINT 指令与 CMD 指令几乎一样,都是在容器启动时自动执行的指令,且只有'最后'一个有效

2)而 ENTRYPINT 与 CMD 的'不同', 主要体现在'两'方面: 

 [1]、一是'ENTRYPOINT执行的命令'不易被覆盖,但是可以通过'--entrypoint覆盖'

 [2]、 二是用于'用户传参'

  (1) docker run 中有[COMMAND],会'覆盖'CMD指令,追加作为'ENTRYPOINT 指令'的参数

   场景: 需要'用户传参'进行初始化

  (2) docker run 中'没有'[COMAMND],此时 CMD 指令的内容便会成为ENTRYPOINT的'默认'参数

docker run 官方参考

④  三者辨析

CMD and ENTRYPOINT的辨析

⑤  k8s的command和args

重点: 理解为'docker run'传递的参数即可,但是有'细小'的差异

1)当用户'同时写了command和args'的时候可以'覆盖'Dockerfile的命令行和参数

 说明: 同时覆盖'CMD和ENTRYPOINT',推荐这种'dynamic'方式

2)如果command和args'均没有写',那么用Dockerfile'默认'的配置

3)如果command写了,但'args没有写',仅执行.yml文件'不带任何参数的'的command

 说明: 同时覆盖Dockerfile中的'CMD和ENTRYPOINT'

4)如果'command没写',但'args写了',Docker'默认'配置的ENTRYPOINT的命令行会'被执行'

 说明: 'args'追加为'ENTRYPOINT'的参数

重点: 要了解'Dockerfile'的内容,才能用k8s的'comamnd和args'更好的编排

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

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

相关文章

RNA-seq 详细教程:详解DESeq2流程(9)

学习目标 了解 DESeq2 涉及的不同步骤了解变异的来源并检查 size factors检查基因水平的离散估计了解差异表达分析过程中离散的重要性DESeq2流程 前面&#xff0c;我们使用设计公式创建了 DESeq2 对象&#xff0c;并使用下面两行代码运行DESeq2&#xff1a; dds <- DESeqDat…

《野球少年》:王牌投手·棒球联盟

身为一名投手&#xff0c;原田巧是位拥有着拔群棒球才能的少年。在初中入学时移居的山间城镇新田市&#xff0c;巧与接住自己全力投球的捕手永仓豪相遇了。进入新田东中学棒球部的两人&#xff0c;被卷入部员间的摩擦以及教师们的大人事情&#xff0c;时而相互产生冲突&#xf…

喊一声“嘿!GitHub”,说出需求VS Code就能自己写代码了

喊一句“嘿&#xff01;GitHub”&#xff0c;说出你的需求&#xff0c;代码自动来&#xff01; Python中导入pandas库&#xff0c;只需说一句“import pandas”&#xff1a; 长句语音、一连串命令&#xff0c;都不在话下&#xff1a; 嗯&#xff0c;就是和Siri一个味儿&#x…

ETDR 0A 电缆故障测试仪 手持便携式 电缆故障脉冲反射仪 可测30KM

用途&#xff1a; ETDR 10A-3 采用低压脉冲反射技术&#xff0c;用于快速、 精确测试通信或电力电缆的故障距离。 多种测试模式&#xff0c;适用于断线、短路、低阻、间歇性等故障类型&#xff0c;并能测试接头的位置。 使用环路脉冲发生器(ES 2002)可以更容易测试有分支的电缆…

实验五、U_GSQ对共源放大电路电压放大倍数的影响

一、题目 UGSU_{GS}UGS​ 对共源放大电路 A˙u\dot A_uA˙u​ 的影响。 二、仿真电路 共源放大电路如图(ccc)所示&#xff0c;其中MOS场效应管型号为2N7000。 三、仿真内容 图1(a)为2N7000相关的参数&#xff0c;图1(b)为其转移特性&#xff0c;以作为参考&#xff08;需注…

Python + ffmepg + nginx-html-flv实现摄像头的实时播放

Python ffmepg nginx-html-flv实现摄像头的实时播放 这段时间有个项目需要捕获摄像头的画面&#xff0c;做轨迹分析之后再做显示。做了四天的调研&#xff0c;虽然结果我还不是特别满意&#xff0c;但也颇有收获&#xff0c;在这里做一下总结。 整体的结构大概是这样的&…

redis高并发问题以及解决方案

文章目录1.高并发读操作问题1.1缓存穿透1.2缓存击穿1.3缓存雪崩2.高并发写问题2.1数据库双写不一致问题2.2双写不一致问题解决方案2.2.1延时双删2.2.2队列2.2.3分布式锁1.高并发读操作问题 1.1缓存穿透 指访问一个缓存和数据库中都不存在的key&#xff0c;由于这个key在缓存中…

[附源码]Node.js计算机毕业设计大学生心理健康咨询系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

[附源码]Python计算机毕业设计吃到撑零售微商城Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等…

R语言里的非线性模型:多项式回归、局部样条、平滑样条、 广义相加模型GAM分析

总览 在这里&#xff0c;我们放宽了流行的线性方法的假设。最近我们被客户要求撰写关于非线性模型的研究报告&#xff0c;包括一些图形和统计输出。有时线性假设只是一个很差的近似值。有许多方法可以解决此问题&#xff0c;其中一些方法可以通过使用正则化方法降低模型复杂性…

计算机网络——应用层

应用层概述 计算机网络各层所解决的问题 我们在浏览器的地址中输入某个网站的域名后&#xff0c;就可以访问该网站的内容&#xff0c;这个就是万维网WWW应用&#xff0c;其相关的应用层协议为超文本传送协议HTTP 用户在浏览器地址栏中输入的是“见名知意”的域名&#xff0c;而…

115-127-mysql-高级篇-索引及结构

115-mysql-高级篇-索引及调优篇&#xff1a; 索引及调优篇 1、索引的数据结构 1. 索引及其优缺点 1.1 索引概述 索引的定义为&#xff1a;索引&#xff08;Index&#xff09;是帮助MySQL高效获取数据的数据结构。 **索引的本质&#xff1a;**索引是数据结构。“排好序的快…

Java项目:SSM在线蛋糕商城销售网站项目

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目为前后台项目&#xff0c;前台为普通用户登录&#xff0c;后台为管理员登录&#xff1b; 用户角色包含以下功能&#xff1a; 查看所有蛋…

[附源码]Python计算机毕业设计宠物托管系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等…

redis--主从复制、哨兵和cluster集群

一、介绍redis 在Redis中&#xff0c;实现高可用的技术主要包括持久化、主从复制、哨兵和cluster集群&#xff0c;下面分别说明它们的作用&#xff0c;以及解决了什么样的问题。 持久化&#xff1a; 持久化是最简单的高可用方法&#xff08;有时甚至不被归为高可用的手段&…

[网络工程师]-网络安全-数字签名和数字证书

随着《中华人民共和国电子签名法》这部法律的出台和实施&#xff0c;电子签名获得了与传统手写签名和盖章同等的法律效力&#xff0c;这意味着经过电子签名的电子文档在网上传输有了合法性。电子签名并非是书面签名的数字图像化&#xff0c;而是一种电子代码。联合国贸发会的《…

单源最短路径问题——分支限界法(Java)

单源最短路径问题——分支限界法&#xff08;Java&#xff09; 文章目录单源最短路径问题——分支限界法&#xff08;Java&#xff09;1、 前置芝士1.1 分支限界法求解目标1.2 分支限界法引言1.3 分支限界法基本思想1.4 两种典型的解空间树2、分支限界法解题过程2.1 算法要点2.…

java 实现对数据表的备份与还原(备份与还原 到服务器中)

java备份还原表数据 背景 需求&#xff1a;这个功能还是费了我一段时间才完成&#xff0c;大体的需求是这样的。 首先是 分模块&#xff0c;每个模块有不同的几个表&#xff0c;备份的时候就按照模块来备份数据&#xff0c;相当于一次性备份多张表的数据了&#xff0c;模块 和…

攻防世界-baigeiRSA

1.下载附件&#xff0c;得到压缩包&#xff0c;解压得到两个文件。 import libnum from Crypto.Util import number from secret import flagsize 128 e 65537 p number.getPrime(size) q number.getPrime(size) n p*qm libnum.s2n(flag) c pow(m, e, n)print(n %d % …

(已更新)Discuz手机模板:NVBING5-APP手机版,界面美观大方,可封装安卓/苹果APP,模板文件+插件+分类信息导入文件

Discuz手机模板&#xff1a;NVBING5-APP手机版——是一款界面美观大方的完整Discuz手机模板&#xff0c;附带模板插件分类信息导入文件详细的安装说明模块说明。 功能介绍 *支持封装安卓APP、苹果APP&#xff0c;原生微信登录、分享等几十项功能 *支持视频上传至优酷云或本地…