Docker CMD指令执行

Docker CMD instruction execution

我的 docker 文件有以下说明

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

当我尝试构建映像时,它构建成功但是 luasocket 还没有安装在我的 docker 上。
但是,当我在 docker 上的“sudo apt-get update”之后手动执行此语句时,一切都很顺利。

为什么在命令行手动 "update" 后可以正常执行。即使我的 docker 包含“update”命令,为什么在这种情况下它会失败?

But when I execute this statement manually after "sudo apt-get update" on docker every thing is going smooth

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

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

更一般地说,此安装命令 (luarocks install luasocket) 不应是 CMD,而是 RUN 指令,以便将 [=19= 的安装融入映像中].