分享好友 资讯首页 频道列表

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

2020-10-29 18:006640

Dockerfile 中的 ARG 指令是定义参数名称,以及定义其默认值。该默认值可以在构建命令 docker build 中用 --build-arg 参数名=值 来覆盖。

语法格式

ARG 参数名[=默认值]

Dockerfile文件ARG指令构建参数和 ENV 的效果一样,都是设置环境变量。所不同的是,ARG 所设置的构建环境的环境变量,在将来容器运行时是不会存在这些环境变量的。但是不要因此就使用 ARG 保存密码之类的信息,因为 docker history 还是可以看到所有值的。

例如Dockerfile为变量指定一个默认值:

FROM busybox

ARG user1=someuser

ARG buildno=1

...

Docker有一组预设置的ARG变量,不需要在Dockerfile中定义就能够使用它。

HTTP_PROXY

http_proxy

HTTPS_PROXY

https_proxy

FTP_PROXY

ftp_proxy

NO_PROXY

no_proxy

要设置这些变量,可以在命令行赋值

--build-arg varname=value

在 1.13 之前的版本,要求 --build-arg 中的参数名,必须在 Dockerfile 中用 ARG 定义过了,换句话说,就是 --build-arg 指定的参数,必须在 Dockerfile 中使用了。如果对应参数没有被使用,则会报错退出构建。从 1.13 开始,这种严格的限制被放开,不再报错退出,而是显示警告信息,并继续构建。这对于使用 CI 系统,用同样的构建流程构建不同的 Dockerfile 的时候比较有帮助,避免构建命令必须根据每个 Dockerfile 的内容修改。

反对 0
举报 0
收藏 0
打赏 0
评论 0
2026云计算新图景:混合AI、多云战略与成本优化引领变革浪潮
2026云计算新图景:混合AI、多云战略与成本优化引领变革浪潮

0评论2026-01-061440

2025量子科技和产业大会:前沿成果闪耀,量子产业迈向新征程
2025量子科技和产业大会:前沿成果闪耀,量子产业迈向新征程

0评论2025-11-262551

AI浪潮下企业转型陷两难,青云科技“渐进式创新”破局有招
AI浪潮下企业转型陷两难,青云科技“渐进式创新”破局有招

0评论2025-11-202982

谷歌入局私有云计算:与苹果共探手机AI隐私保护新路径
谷歌入局私有云计算:与苹果共探手机AI隐私保护新路径

0评论2025-11-131093

Aqara Space重庆旗舰店启幕 以科技美学赋能西南空间智能新体验
Aqara Space重庆旗舰店启幕 以科技美学赋能西南空间智能新体验

0评论2025-10-312150

华为擎云智慧能源方案亮相煤炭展:以科技守护煤炭行业安全与发展
华为擎云智慧能源方案亮相煤炭展:以科技守护煤炭行业安全与发展

0评论2025-10-312764