docker - 通过带有参数的 docker run 命令覆盖 Dockerfile CMD
问题描述
我有一个带有 CMD 的 Dockerfile。我想通过 docker run 命令覆盖此命令,但在我的命令中有参数。命令是这样的: MyAppName -DataBase myDataBase -Port myPort -AnotherARG arg 任何容器启动中的参数都是不同的,这意味着我不能在每次容器启动时提供所有参数(有很多参数)我该怎么做这个?谢谢
解决方案
那么问题是什么?
如果每次启动时命令行都完全不同,您最好CMD
不要ENTRYPOINT
在您的中声明Dockerfile
,而是在每次启动时提供:
docker run -it ubuntu /bin/sh -c "echo Hello World"
如果有共同的部分,假设您总是需要一个外壳,但参数不同,那么您可以ENTRYPOINT
声明Dockerfile
:
Dockerfile
FROM ubuntu
....
ENTRYPOINT ['/bin/sh']
并在启动时提供剩余的参数:
docker run -it mycontainer -c 'Hello World!
你需要记住:
提供的参数
docker run
连接到Dockerfile
'sENTRYPOINT
参数,在
docker run
overrideDockerfile
中提供CMD
您应该使用
ENTRYPOINT ['blah', 'blah']
语法而不是ENTRYPOINT blah blah
inDockerfile
以使其正常工作
推荐阅读
- android - 在授予谷歌地图活动权限后,我无法立即获得我的位置。我做错了什么?
- xamarin.forms - Xamarin Forms (IOS, Droid)- 整个表单的 PanGestureRecognizer
- node.js - 错误:在将标头发送到客户端后无法设置标头(带有下一个)
- php - 如何使用 laravel elquent 通过数据透视列获取记录顺序?
- php - 包装 2 个块并在 1 行上显示它们
- node.js - 动态请求 url 上的 encodeURIComponent,node.js
- jquery - 获取多个元素的文本作为单独的值
- python - 谷歌 colab 上的 cuDNN
- c++ - 如何将条件文本转换为“if”条件表达式?
- graph - 所有最短路径查询的总和