Docker CMD 的命令行参数
Command line arguments to Docker CMD
我想将参数传递给 docker CMD。例如,如果 Dockerfile
的内容是
FROM ubuntu:15.04
CMD ["/bin/bash", "-c", "cat", ""]
那我要运行如下:
docker build -t cat_a_file .
docker run -v `pwd`:/data cat_a_file /data/Dockerfile
我想将 Dockerfile
的内容打印到屏幕上。但是,Docker 认为 /data/Dockerfile
是一个应该覆盖 CMD
的脚本,给出错误
Error response from daemon: Cannot start container 7cfca4:
[8] System error: exec: "/data/Dockerfile": permission denied
如何避免这种情况?
使用 ENTRYPOINT
这样的东西。任何 CMD
参数附加到给定的 ENTRYPOINT
.
因此,如果您将 Dockerfile 更新为:
FROM ubuntu:15.04
ENTRYPOINT ["/bin/bash", "-c", "cat"]
一切如你所愿。
此外,由于您不需要 </code>,您应该可以将其更改为:</p>
<pre><code>FROM ubuntu:15.04
ENTRYPOINT ["/bin/cat"]
我还没有测试过这些,所以如果它不起作用请告诉我。
我想将参数传递给 docker CMD。例如,如果 Dockerfile
的内容是
FROM ubuntu:15.04
CMD ["/bin/bash", "-c", "cat", ""]
那我要运行如下:
docker build -t cat_a_file .
docker run -v `pwd`:/data cat_a_file /data/Dockerfile
我想将 Dockerfile
的内容打印到屏幕上。但是,Docker 认为 /data/Dockerfile
是一个应该覆盖 CMD
的脚本,给出错误
Error response from daemon: Cannot start container 7cfca4:
[8] System error: exec: "/data/Dockerfile": permission denied
如何避免这种情况?
使用 ENTRYPOINT
这样的东西。任何 CMD
参数附加到给定的 ENTRYPOINT
.
因此,如果您将 Dockerfile 更新为:
FROM ubuntu:15.04
ENTRYPOINT ["/bin/bash", "-c", "cat"]
一切如你所愿。
此外,由于您不需要 </code>,您应该可以将其更改为:</p>
<pre><code>FROM ubuntu:15.04
ENTRYPOINT ["/bin/cat"]
我还没有测试过这些,所以如果它不起作用请告诉我。