Docker CMD指令执行

时间:2016-05-11 11:56:52

标签: docker apt-get luarocks

我的泊坞窗文件包含以下说明

CMD ["luarocks","install",luasocket"]

当我尝试构建图片时,它已成功构建,但我的docker上尚未安装luasocket。 但是当我在" sudo apt-get update"之后手动执行此语句时在码头上一切都很顺利。

为什么在"更新"之后正确执行?在命令行上手动。即使我的码头包含" update"命令,为什么在这种情况下失败?

1 个答案:

答案 0 :(得分:1)

  

但是当我在" sudo apt-get update"之后手动执行此语句时在码头工人身上,每件事情都很顺利

如果在容器会话中执行sudo apt-get update(即,在docker run之后),apt-get命令执行的任何操作都将重置下一个docker run(下一个容器)。

如果命令RUN apt-get update需要成功完成,请确保在Dockerfile中包含luarocks install luasocket

更一般地说,此安装命令(luarocks install luasocket)不应该是CMD,而是RUN指令,以便将luasocket的安装烘焙到映像中。