Docker ARG从CMD中缺失(17.06.0-ce)

在我的Dockerfile中,我定义了ARG值,并在RUN命令中成功使用它们。

但是,在我的CMD中,ARG值没有出现。

Dockerfile:

FROM anapsix/alpine-java:8 MAINTAINER [email protected] ARG NAME=UNSET CMD echo NAME is $NAME 

例:

 12:29:27 ~/workspaces/k8s/docker > docker build scratch Sending build context to Docker daemon 2.048kB Step 1/4 : FROM anapsix/alpine-java:8 ---> f68f6cb88633 Step 2/4 : MAINTAINER [email protected] ---> Using cache ---> b974feaede6a Step 3/4 : ARG NAME=UNSET ---> Running in 0d1ebf746c33 ---> c58708f2a58c Removing intermediate container 0d1ebf746c33 Step 4/4 : CMD echo NAME is $NAME ---> Running in 52952d8c9e0d ---> be9dca528d15 Removing intermediate container 52952d8c9e0d Successfully built be9dca528d15 12:29:33 ~/workspaces/k8s/docker > docker run be9dca528d15 NAME is 

我希望这行是NAME is UNSET ,或者我指定的任何值(使用docker build --build-arg NAME=whatever )。