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= 的安装融入映像中].
我的 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= 的安装融入映像中].