我今天遇到了一件奇怪的事情。具体步骤如下:
1.我运行下面的cmd命令,它是输出:
shshenhx@shshenhx:~/Desktop/Docker/IP$ curl --noproxy '*' http://ip.cn
当前 IP:202.101.0.2 来自:上海市 电信 <====The cmd get my public IP
successfully然后我得到了一个Dockerfile,内容如下:
FROM ubuntu
RUN apt-get update \
&& apt-get install -y curl \
&& rm -rf /var/lib/apt/lists/*
RUN curl --noproxy '*' http://ip.cn <==Here I run the cmd directly输出仍然是
shshenhx@shshenhx:~/Desktop/Docker/IP$ curl --noproxy '*' http://ip.cn
当前 IP:202.101.0.2 来自:上海市 电信3.如果我将最后一行改为CMD model,如下所示:
FROM ubuntu
RUN apt-get update \
&& apt-get install -y curl \
&& rm -rf /var/lib/apt/lists/*
CMD ["curl" , "--noproxy '*'" , "http://ip.cn"]然后我得到了如下的错误:
shshenhx@shshenhx:~/Desktop/Docker/IP$ docker run myip
curl: option --noproxy '*': is unknown
curl: try 'curl --help' or 'curl --manual' for more information有人能理解这里的问题吗?为什么我可以在dockerfile中使用run运行curl cmd,但是使用CMD失败?
发布于 2018-02-23 11:32:24
每个不是参数一部分的空格都需要一个,
CMD [ "curl" , "--noproxy", "*" , "http://ip.cn" ]在这种情况下,*不需要加引号,因为没有一个外壳将*扩展到当前目录中的文件,参数直接传递给curl二进制文件。
https://stackoverflow.com/questions/48940629
复制相似问题