我正在尝试找到构建和运行Docker镜像和容器的最佳实践。在下面的示例中,我将引用this Dockerfile。
目前我使用此命令构建图像:
$ docker build -t <imagename> .
但由于一些奇怪的原因,最终会运行和附加到容器:
$ docker build -t hellotrello .
[...]
Step 13 : RUN ruby hellotrello.rb
---> Running in bf3edd441128
[2015/03/01 19:58:54.750] !! Application Debug message: hellotrello started
^C%
$
这是通常的吗?我实际上只想构建映像并使用单独的命令来启动容器。
现在不确定这里发生了什么。
答案 0 :(得分:1)
您的最后一个命令(RUN ruby hellotrello.rb
)应该在您run
容器时运行,而不是在构建它时运行。尝试从Dockerfile中删除它,重新构建映像并运行docker run hellotrello ruby hellotrello.rb
。
另一种选择是将RUN
重命名为CMD
而不是运行docker run hellotrello
(不带参数)。