运行docker容器的命令

时间:2017-05-21 13:37:48

标签: node.js docker

这就是我在docker容器中运行命令的方法:

$ docker run -it --rm --name myapp myimage:latest
$ node --version

是否可以将其作为一个命令运行?我可以将命令传递给docker run - 命令吗?

这样的东西
$ docker run -it --rm --name myapp myimage:latest "node --version"

当然这只是一个简单的例子。稍后我会执行一些更复杂的命令......

3 个答案:

答案 0 :(得分:1)

“docker run”命令基本上会使容器运行,并执行Dockerfile中的“CMD”或“ENTRYPOINT”。除非 - dockerfile中的命令没有运行命令提示符 - “正在运行”容器可能无法得到提示。

例如,如果您希望每次运行容器时 - 它会获取命令提示符,然后在Dockerfile中显示以下行:

import calendar

sum(calendar.monthrange(year,month)[0]==calendar.SUNDAY 
    for year in range(1901,2001) 
    for month in range(1,13))

如果要在每次运行命令时运行相同的命令 - 那么您可以使用命令创建脚本文件,将它们复制到容器中,并将脚本文件作为CMD指令执行。

答案 1 :(得分:0)

我在理解你要做的事情时遇到了一些麻烦。

你可以: docker run -d --name myapp myimage:latest -f / dev / null然后你的容器已启动,你可以在其中运行任何命令

您可以将命令传递给docker run但是一旦命令结束,容器将退出

答案 2 :(得分:0)

命令的一般形式实际上是:

  

docker run [OPTIONS] IMAGE [:TAG | @DIGEST] [COMMAND] [ARG ...]

有关详细信息,请参阅documentation

您问题中最小例子的答案很简单:

docker run -it --rm --name myapp myimage:latest node --version

如果要按顺序运行多个命令,可以:

  1. 运行容器
  2. 使用docker exec
  3. 对正在运行的容器执行命令
  4. 将其删除