电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

docker中的run/cmd/entrypoint的區別詳解

瀏覽:19日期:2024-10-24 14:34:03

Dockerfile中run、cmd和entrypoint都能夠用于執行命令,下面是三者的主要用途:

run命令執行命令并創建新的鏡像層,通常用于安裝軟件包 cmd命令設置容器啟動后默認執行的命令及其參數,但CMD設置的命令能夠被docker run命令后面的命令行參數替換 entrypoint配置容器啟動時的執行命令,不會被忽略,一定會被執行,即使運行 docker run時指定了其他命令。Shell格式和Exec格式運行命令

我們可以用下面兩種格式指定run、cmd和entrypoint要運行的命令:

Shell格式: 。例如:yum install -y wget Exec格式: [“executable”, “param1”, “param2”, …]。例如: [“yum”, “install”, “-y”, “wget”]

cmd和entrypoint推薦使用exec格式,因為指令的可讀性更強,更容易理解,而run則兩種格式都可以。

Exec格式的坑

dockerfile的內容如下:

env name morrisentrypoint ['echo', '$name']

這種寫法只會打印出$name,不會進行變量的替換,原因是它只是在執行echo命令,并不是執行shell。意思是說,我們不是在shell里執行echo,只是單純的執行echo,所以不會替換變量。

想要改成可執行的shell,需要改寫成以下形式

env name morrisentrypoint ['/bin/bash', '-c', 'echo $name']run命令

run指令通常用于安裝應用和軟件包。run在當前鏡像的頂部執行命令,并通過創建新的鏡像層。Dockerfile中常常包含多個run指令。下面是一個例子:

run yum update && yum install -y bzr cvs git mercurial subversion

yum update和yum install被放在一個run指令中執行,這樣能夠保證每次安裝的是最新的包。如果yum install在單獨的run中執行,則會使用yum update創建的鏡像層,而這一層可能是很久以前緩存的。

cmd命令

cmd指令允許用戶指定容器的默認執行的命令。此命令會在容器啟動且docker run沒有指定其他命令時運行。下面是一個例子:

cmd echo 'Hello world'

運行容器docker run -it [image]將輸出:

Hello world

但當后面加上一個命令,比如docker run -it [image] echo hi,cmd會被忽略掉,命令echo hi將被執行:

hi

如果存在多個cmd命令,則只會執行最后一個cmd命令。

entrypoint命令

entrypoint的exec格式用于設置容器啟動時要執行的命令及其參數,同時可通過cmd命令或者命令行參數提供額外的參數。entrypoint中的參數始終會被使用,這是與cmd命令不同的一點。下面是一個例子:

entrypoint ['echo', 'Hello']

當容器通過docker run -it [image]啟動時,輸出為:

Hello

而如果通過docker run -it [image] morris啟動,則輸出為:

Hello morris

再來看一個例子,Dockerfile為:

entrypoint ['echo', 'Hello']cmd ['world']

當容器通過docker run -it [image]啟動時,輸出為:

Hello world

而如果通過docker run -it [image] morris啟動時,輸出為:

Hello morris

entrypoint中的參數始終會被使用,而cmd的額外參數可以在容器啟動時動態替換掉。

同樣的,如果存在多個entrypoint命令,則只會執行最后一個entrypoint命令。

總結 使用run指令安裝應用和軟件包,構建鏡像。 如果Docker鏡像的用途是運行應用程序或服務,比如運行一個MySQL,應該優先使用Exec格式的entrypoint指令。cmd可為entrypoint提供額外的默認參數,同時可利用docker run命令行替換默認參數。 如果想為容器設置默認的啟動命令,可使用cmd指令。用戶可在docker run命令行中替換此默認命令。

到此這篇關于docker中的run/cmd/entrypoint的區別詳解的文章就介紹到這了,更多相關docker run/cmd/entrypoint內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Docker
相關文章:
主站蜘蛛池模板: 【北京写字楼出租_写字楼租赁_办公室出租网/出售】-远行地产官网 | MES系统-WMS系统-MES定制开发-制造执行MES解决方案-罗浮云计算 | 厂房出租_厂房出售_产业园区招商_工业地产 - 中工招商网 | 纸塑分离机-纸塑分离清洗机设备-压力筛-碎浆机厂家金双联环保 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 周易算网-八字测算网 - 周易算网-宝宝起名取名测名字周易八字测算网 | pH污水传感器电极,溶解氧电极传感器-上海科蓝仪表科技有限公司 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 传爱自考网_传爱自学考试网 | 干式磁选机_湿式磁选机_粉体除铁器-潍坊国铭矿山设备有限公司 | 净化车间装修_合肥厂房无尘室设计_合肥工厂洁净工程装修公司-安徽盛世和居装饰 | 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 电机铸铝配件_汽车压铸铝合金件_发动机压铸件_青岛颖圣赫机械有限公司 | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 烘干设备-热泵烘干机_广东雄贵能源设备有限公司| 圈酒招商网【jiushuitv.com】_酒水招商_代理_加盟平台 | 东莞办公家具厂家直销-美鑫【免费3D效果图】全国办公桌/会议桌定制 | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | 多物理场仿真软件_电磁仿真软件_EDA多物理场仿真软件 - 裕兴木兰 | 大型工业风扇_工业大风扇_大吊扇_厂房车间降温-合昌大风扇 | 安徽成考网-安徽成人高考网 | 综合管廊模具_生态,阶梯护坡模具_检查井模具制造-致宏模具厂家 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 叉车电池-叉车电瓶-叉车蓄电池-铅酸蓄电池-电动叉车蓄电池生产厂家 | 质检报告_CE认证_FCC认证_SRRC认证_PSE认证_第三方检测机构-深圳市环测威检测技术有限公司 | 智能交通网_智能交通系统_ITS_交通监控_卫星导航_智能交通行业 | 智慧钢琴-电钢琴-便携钢琴-数码钢琴-深圳市特伦斯乐器有限公司 | 涡街流量计_LUGB智能管道式高温防爆蒸汽温压补偿计量表-江苏凯铭仪表有限公司 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 | 铣刨料沥青破碎机-沥青再生料设备-RAP热再生混合料破碎筛分设备 -江苏锡宝重工 | 阿尔法-MDR2000无转子硫化仪-STM566 SATRA拉力试验机-青岛阿尔法仪器有限公司 | 复盛空压机配件-空气压缩机-复盛空压机(华北)总代理 | 河南中整光饰机械有限公司-抛光机,去毛刺抛光机,精密镜面抛光机,全自动抛光机械设备 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 【ph计】|在线ph计|工业ph计|ph计厂家|ph计价格|酸度计生产厂家_武汉吉尔德科技有限公司 | 碳纤维布-植筋胶-灌缝胶-固特嘉加固材料公司 | 美国HASKEL增压泵-伊莱科elettrotec流量开关-上海方未机械设备有限公司 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | 圆盘鞋底注塑机_连帮鞋底成型注塑机-温州天钢机械有限公司 | 视频直播 -摄影摄像-视频拍摄-直播分发 | 垃圾压缩设备_垃圾处理设备_智能移动式垃圾压缩设备--山东明莱环保设备有限公司 |