如何将命令行参数传递给Docker镜像

8

我在docker镜像内运行测试,并且需要始终传递自定义参数。

当我在镜像名称后面添加参数时,Docker会认为该参数是镜像名称。

docker run  -t -i image-name -s test.py
docker run  -t -i image-name -- -s test.py

错误:

Failed no image test_arena2.py

Docker版本1.11.2,构建b9f10c9


如果您提供一个 [mcve],那将非常有帮助。 - Ulrich Eckhardt
3个回答

9
您可以使用ENTRYPOINTCMD指令组合构建Dockerfile,这将使您能够使用或不使用参数运行容器,例如:
FROM ubuntu
ENTRYPOINT ["/bin/echo"]
CMD ["hello"]

这表示入口点是echo命令,而默认参数是hello。不带参数运行一个容器:

> docker run temp
hello  

带参数运行,所有参数都会传递给入口点命令:

> docker run temp -s stackoverflow
-s stackoverflow

2
你可以发布你的Dockerfile吗? - Elton Stoneman

0

docker run -i 是您命令行的良好起点,然后只需使用运行命令的参数集,最后使用提供的镜像名称-t image


-2

镜像名称应始终位于docker run命令的末尾,即作为命令的最后一个参数。您是否愿意使用以下命令将值作为环境变量传递?

docker run -e "ENV_VAR_NAME=VALUE" -it image_name 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接