电商| 物流| 科技| 创业| 经商| 运营| 科普| 财经| 文娱| AI| 物联| 品牌| 会议| 政策| 时尚| 健康| 家居| 金融| 农业| 汽车| 房产| 百科| 生活| 游戏| 管理| 快讯
 
首页 » 资讯 » 科普 » 云计算核心技术Docker教程:Dockerfile文件SHELL命令详解

云计算核心技术Docker教程:Dockerfile文件SHELL命令详解

放大字体  缩小字体 时间:2020-11-04 10:38    热度:1037
Dockerfile文件SHELL指令可以覆盖命令的shell模式所使用的默认shell。Linux的默认shell是[“/bin/sh”, “-c”],Windows的是[“cmd”, “/S”, “/C”]。SHELL指令必须以JSON格式编写。。。。

Dockerfile文件SHELL指令可以覆盖命令的shell模式所使用的默认shell。Linux的默认shell是[“/bin/sh”, “-c”],Windows的是[“cmd”, “/S”, “/C”]。SHELL指令必须以JSON格式编写。

语法格式

SHELL ["executable", "parameters"]

该SHELL指令在Windows上特别有用,在Windows上有两个常用且完全不同的本机shell:cmd和powershell,以及可用的替代shell包括sh。

该SHELL说明可以出现多次。每个SHELL指令将覆盖所有先前的SHELL指令,并影响所有后续的指令。例如:

FROM microsoft/windowsservercore

# Executed as cmd /S /C echo default

RUN echo default

# Executed as cmd /S /C powershell -command Write-Host default

RUN powershell -command Write-Host default

# Executed as powershell -command Write-Host hello

SHELL ["powershell", "-command"]

RUN Write-Host hello

# Executed as cmd /S /C echo hello

SHELL ["cmd", "/S", "/C"]

RUN echo hello

当RUN, CMD和ENTRYPOINT使用shell形式时,将使用SHELL指令设置的shell执行。

以下的示例是windows常见的模式,可以使用SHELL指令精简:

RUN powershell -command Execute-MyCmdlet -param1 "c:\foo.txt"

docker调用的命令将是:

cmd /S /C powershell -command Execute-MyCmdlet -param1 "c:\foo.txt"

这效率低下有两个原因。首先,有一个不必要的cmd.exe命令处理器(也称为Shell)被调用。其次,shell 形式的每条RUN指令都需要在命令前加上前缀。powershell -command

为了使其更有效,可以采用两种机制之一。一种是使用RUN命令的JSON形式,例如:

RUN ["powershell", "-command", "Execute-MyCmdlet", "-param1 \"c:\\foo.txt\""]

虽然没有调用了cmd.exe,不过需要对双引号进行转义,看起来比较冗长。另一种机制是使用SHELL指令和shell形式,使得windows用户可以使用更自然的语法,特别是与escape指令一起用时:

# escape=`

FROM microsoft/nanoserver

SHELL ["powershell","-command"]

RUN New-Item -ItemType Directory C:\Example

ADD Execute-MyCmdlet.ps1 c:\example\

RUN c:\example\Execute-MyCmdlet -sample 'hello world'

关于云计算核心技术Docker教程:Dockerfile文件SHELL命令详解的要点介绍,希望对大家了解云计算核心技术Docker教程:Dockerfile文件SHELL命令详解有所帮助,如有侵权,联系我们37442552@qq.com。
标签: 云计算
 
你可能感兴趣:
 
云计算业务快速发展 华胜天成荣获“云鼎奖”两

2020-09-10

中国通信院研究报告表明,未来云计算产业将迎来黄金十年发展期。预计到2023年,我国公有云市场规模将超过2300亿元,私有云市场规

云计算业务需求提振 微软第二财季营收激增17%

2021-01-27

查看最新行情 1月27日下午消息,据报道,微软公司(Microsoft Corp.)第二财季营收增长17%,高于分析师的预期。微软称,这主要是

云计算公司Snowflake上市首日 开盘股价翻倍

2020-09-17

硅谷的云计算服务公司Snowflake(股票代码为:Snow)今日在美国纽交所上市,发行价为120美元,首日开盘翻倍,开盘报245美元。Sno

云计算公司Snowflake上市首日报收253.93美元 较

2020-09-17

【经商宝】9月17日消息,据国外媒体报道,获得巴菲特掌控的伯克希尔哈撒韦公司认购的云计算公司Snowflake的股票,当地时间周三正

云计算公司Snowflake上市首日暴涨111% 获巴菲特

2020-09-17

美国时间本周三,Snowflake在纽交所上市,首个交易日股价翻了一倍多。Snowflake公司得到了巴菲特的支持,股价大涨说明投资者对新

云计算公司Snowflake上市首日暴涨111% 获巴菲特

2020-09-17

美国时间本周三,Snowflake在纽交所上市,首个交易日股价翻了一倍多。Snowflake公司得到了巴菲特的支持,股价大涨说明投资者对新

云计算公司Snowflake上市首日涨幅130%

2020-09-17

【经商宝】北京时间9月17日美股收盘,云计算服务公司Snowflake(股票代码为SNOW)首日开盘翻倍,开盘报245美元。Snowflake开盘后

云计算容量管理的重要性及其实现方法

2020-10-29

在云中运行工作负载可以使组织访问无限的资源。这是一件好事,但前提是组织的IT团队需要采用良好的容量管理实践。云计算模型的最

云计算市场竞争愈演愈烈,IBM收购芬兰云计算公

2020-12-28

12月25日消息,IBM日前宣布,该公司已收购了芬兰云咨询服务提供商Nordcloud,但未披露收购金额。IBM希望在日益激烈的云战中获得

云计算开发学习实例:Python 使用递归斐波那契

2020-10-27

斐波那契数列又称黄金分割数列、因数学家列昂纳多斐波那契以兔子繁殖为例子而引入,故又称为兔子数列,指的是这样一个数列:1、1

 
热点图文
上海国际科普微电影大赛揭晓  《长江,长江》获评委会大奖

上海国际科普微电影大赛揭晓 《长江,长江》获评委会大奖

康师傅贾先德:用"开大门走大路"的科普方式应对谣言

康师傅贾先德:用"开大门走大路"的科普方式应对谣言

未来:中国何时才能成为世界科技活动中心

未来:中国何时才能成为世界科技活动中心

拯救互联网计划 “万维网之父”蒂姆·伯纳斯-李发起拯救互联网计划

拯救互联网计划 “万维网之父”蒂姆·伯纳斯-李发起拯救互联网计划

腾讯率先推出复学码 建立校园电子健康系统

腾讯率先推出复学码 建立校园电子健康系统

卫健委:在密集场所空调这么用才安全

卫健委:在密集场所空调这么用才安全

央视曝光微信清粉骗局 可能盗取用户个人账号信息

央视曝光微信清粉骗局 可能盗取用户个人账号信息

 
经商宝 — 经商创业营销推广电子商务门户 网站地图 | 关于我们 | 特惠服务 | 人才招聘 | 联系我们 | 法律声明