使用 docker,我可以在使用 docker run 命令时执行命令。就我而言,我必须在使用 docker run
命令时执行 bash 脚本:
docker run --rm --name XXXXX my_image /xxx/xxx/xxx/my_script.sh -s
我使用 -s
标志在我的脚本中使用一个选项。
现在,我想使用 -e
命令可用的 docker run
标志。目前,我使用这种风格的命令:
docker run -e XXXX-e XXXX --rm --name my_image /XXX/XXX/XXX/XXX -s
我想使用此命令,但要使用其他“布局”,例如:
docker run --rm --name XXXXX my_image /xxx/xxx/xxx/my_script.sh -s \
-e XXXX \
-e XXXX
但是如果我使用这个“布局”,我就不能在我的脚本中使用我的 -s
标志...
如果可能的话,有人告诉我怎么做吗?
谢谢!
答案 0 :(得分:2)
您不能反转参数 - docker 本身的所有参数都必须在图像名称之前指定。这样做是为了可以毫无歧义地覆盖 CMD,就像您通过传递 /XXXX -s
所做的那样。
如果您使用的是 shell 脚本,您可以这样做:
args=(-e XXXX -e XXXX --rm --name XXXXXX)
docker run "${args[@]}" my_image /XXX/XXX/XXX/XXX -s
通过这种方式,可以清楚哪些参数被传递给 Docker,哪些是您的命令,并且您可以拆分您的行而不会使其混淆。