Dockerfile CMD curl--noproxy*带空格的参数不起作用

Dockerfile CMD curl--noproxy*带空格的参数不起作用,docker,curl,dockerfile,Docker,Curl,Dockerfile,我今天遇到一件奇怪的事。 以下是步骤: 1.我运行下面的cmd,它是输出: shshenhx@shshenhx:~/Desktop/Docker/IP$ curl --noproxy '*' http://ip.cn 当前 IP:202.101.0.2 来自:上海市 电信 <====The cmd get my public IP successfully 3.如果我将最后一行更改为CMD model,如下所示: FROM ubuntu RUN apt-get update \ &am

我今天遇到一件奇怪的事。 以下是步骤:

1.我运行下面的cmd,它是输出:

shshenhx@shshenhx:~/Desktop/Docker/IP$ curl --noproxy '*' http://ip.cn
当前 IP:202.101.0.2 来自:上海市 电信 <====The cmd get my public IP 
successfully
3.如果我将最后一行更改为CMD model,如下所示:

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
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
然后我得到了如下错误:

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
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

有人能在这里找到问题吗?为什么我可以使用run-in-dockerfile运行curl cmd,但使用cmd失败?

每个不属于参数一部分的空格都需要

在本例中不需要引用*,因为没有一个shell可以将*扩展到当前目录中的文件,所以参数直接传递给curl二进制文件