我对Docker和Containers完全陌生。我也是整个VM概念的新手。
我知道VM和Dockers是一种使应用程序的所有依赖项可以作为单个组件使用的方法,您可以轻松地在支持它们的云上进行部署。
我在本地计算机(Ubuntu)上安装了Docker,并使用used this guide下载并运行Node Official Image。
我现在需要知道的是如何对Docker中的文件进行代码更改?我对应用内的'server.js'进行了更改,当我导航到http://locahost:49160
时,浏览器仍会显示旧server.js
的输出。我重新启动了容器,但我得到了相同的旧输出。
我看到我可以提交更改并制作新图像。但那么,旧图像是不是完全没用?
或者我完全没有了解Docker的工作原理?
答案 0 :(得分:5)
您可以在容器内进行更改,甚至可以将这些更改提交到原始图像或创建新图像。
但我建议你创建一个新的图像或标签。
查看guide。如果要对patternC
进行更改,请执行此操作,但也要为其构建新图像。不要忘记添加标签(server.js
)。
示例,test1
然后您可以使用docker build -t <your username>/node-web-app:test1 .
答案 1 :(得分:2)
在你的情况下。您可能需要重建图像:
docker build -t my-new-image .
您对server.js
进行了编辑,该修改会复制到您的图片/容器中。旧图像确实无用。在构建之后,您需要使用docker run
启动一个新容器。
在某些情况下,您可以使用docker run -v my-local-volume:/volume-in container ...
当您在本地计算机上编辑代码时,它将自动在容器内更新。无需更新映像或重新启动容器。但在您的情况下,使用dockerfile的COPY
命令复制应用程序中的代码。