如何更改Docker容器中的代码?
我对Docker和Containers完全陌生。 我也是整个虚拟机概念的新手。
我知道VM和Docker是一种将应用程序的所有依赖关系作为单一组件提供的方式,您可以在支持它们的云上轻松部署这些组件。
我在我的本地机器(Ubuntu)上安装了Docker,我使用这个指南来下载并运行Node官方镜像。
我现在需要知道的是,如何对Docker中的文件进行代码更改? 我对应用程序中的“server.js”进行了更改,当我导航到http://locahost:49160
,浏览器仍显示旧server.js
的输出。 我重新启动容器,但我得到相同的旧输出。
我看到我可以做出改变并形成新的形象。 但是,那么旧的图像是不是完全没用?
或者我根本不了解Docker如何工作?
您可以在容器内进行更改,甚至可以将这些更改提交到原始图像或创build新图像。
但我build议你创build一个新的图像或标签。
查看指南 。 当你想在server.js
上做一些改变的时候,让它做,但是也要为它build立一个新的映像。 不要忘记添加一个标签( test1
)。
例如, docker build -t <your username>/node-web-app:test1 .
然后,您可以使用docker run -p 49160:8080 -d <your username>/node-web-app:test1
运行新映像
在你的情况。 你可能需要重build你的图片:
docker build -t my-new-image .
你编辑了你的图像/容器中复制的server.js
。 旧图像确实没用。 在构build之后,您需要使用docker run
来启动一个新的容器。
在某些情况下,可以通过docker run -v my-local-volume:/volume-in container ...
将代码/数据装载到docker容器docker run -v my-local-volume:/volume-in container ...
当您在本地机器上编辑您的代码时,它将自动更新到您的容器中。 不更新图像或重新启动容器。 但在你的情况下,你使用dockerfile的COPY
命令复制应用程序中的代码。