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

时间:2016-10-25 11:38:27

标签: docker

我在docker image中运行测试,我需要传递自定义参数 每时每刻。

当我在图像名称之后放置参数时,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

3 个答案:

答案 0 :(得分:5)

您可以使用ENTRYPOINTCMD指令的组合构建Dockerfile,这将允许您run containers with or without arguments,例如:

FROM ubuntu
ENTRYPOINT ["/bin/echo"]
CMD ["hello"]

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

> docker run temp
hello  

使用参数运行并将它们全部传递给entrypoint命令:

> docker run temp -s stackoverflow
-s stackoverflow

答案 1 :(得分:0)

// get the current date/time in a specific timezone ZonedDateTime.now(ZoneId.of("Europe/Paris")); 很适合作为命令行的开头,然后docker run -i只有在提供图像名称的最后set of arguments for the run command

答案 2 :(得分:-1)

图像名称应始终位于docker run命令的末尾,即作为命令的最后一个参数。你可以使用下面的命令

将值作为环境变量传递
docker run -e "ENV_VAR_NAME=VALUE" -it image_name