如何更改Docker容器中的代码?

时间:2016-11-23 07:22:55

标签: node.js docker

我对Docker和Containers完全陌生。我也是整个VM概念的新手。

我知道VM和Dockers是一种使应用程序的所有依赖项可以作为单个组件使用的方法,您可以轻松地在支持它们的云上进行部署。

我在本地计算机(Ubuntu)上安装了Docker,并使用used this guide下载并运行Node Official Image。

我现在需要知道的是如何对Docker中的文件进行代码更改?我对应用内的'server.js'进行了更改,当我导航到http://locahost:49160时,浏览器仍会显示旧server.js的输出。我重新启动了容器,但我得到了相同的旧输出。

我看到我可以提交更改并制作新图像。但那么,旧图像是不是完全没用?

或者我完全没有了解Docker的工作原理?

2 个答案:

答案 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 ...

将代码/数据装入Docker容器

当您在本地计算机上编辑代码时,它将自动在容器内更新。无需更新映像或重新启动容器。但在您的情况下,使用dockerfile的COPY命令复制应用程序中的代码。