如何更改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命令复制应用程序中的代码。