Docker CMD指令执行

我的docker文件有以下说明

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

当我尝试构build映像时,它会成功构build,但luasocket尚未安装在我的泊坞窗上。
但是当我在docker上的“ sudo apt-get update ”之后手动执行这个语句时,一切都很顺利。

为什么在命令行上手动“更新”后,它正在被正确执行。 即使我的docker包含“ update ”命令,为什么在这种情况下失败?

但是当我在docker上的“sudo apt-get update”之后手动执行这个语句的时候,每一件事情都很顺利

如果你在一个容器会话中执行一个sudo apt-get update (例如,在docker run ), apt-get命令完成的任何操作都将在下一个docker run (下一个容器)时被重置。

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

更一般地说,这个安装命令( luarocks install luasocket )不应该是一个CMD ,而是一个RUN指令,以便将镜像安装到luasocket