为什么Dockerfile中的CMD格式看起来像命令列表?

问题描述 投票:-1回答:1

在一些Dockferfile示例中,我看到了这种奇怪的命令格式:

CMD [ "django-admin", "startproject hello_world_django" ]

CMD [ "python", "manage.py runserver 0.0.0.0:8000" ]

但是以我自己的Dockerfile,我做到了,而且效果很好:

CMD python manage.py runserver 0.0.0.0:8000
docker dockerfile
1个回答
1
投票

Dockerfile docs状态:

CMD指令具有三种形式:

  • CMD [“ executable”,“ param1”,“ param2”](执行形式,这是首选)>

  • CMD [“ param1”,“ param2”](作为ENTRYPOINT的默认参数)

  • CMD命令param1 param2(shell形式)

  • 如果您使用CMD的外壳形式,则将执行在/ bin / sh -c:

FROM ubuntu CMD echo "This is a test." | wc

如果您想运行没有外壳,则必须将命令表示为JSON数组并提供可执行文件的完整路径。该数组形式是CMD的首选格式。任何其他参数必须是在数组中分别表示为字符串:

FROM ubuntu CMD ["/usr/bin/wc","--help"]

© www.soinside.com 2019 - 2024. All rights reserved.