将更新的更改拉入已部署的Docker容器的最佳方法是什么?

时间:2017-12-06 22:05:25

标签: node.js git docker dockerfile docker-cloud

我必须执行以下步骤,通过DockerCloud将我的 Nodejs / Angular 站点部署到AWS

  • 编写Dockerfile
  • 根据我的Dockerfiles构建Docker镜像
  • 将这些图像推送到Docker Hub
  • 在DockerCloud帐户上创建节点群集
  • 在DockerCloud上写入Docker堆栈文件
  • 在DockerCloud上运行堆栈
  • 查看在AWS中运行的实例,并可以查看我的网站

如果我们需要一些小的更改,需要从我的项目仓库中提取。 但是我们已经部署了你可能知道的码头工人。

将这些更改添加到已部署的Docker容器中的最佳方法是什么?

我希望我们不必:

  • 重建我们的Docker镜像
  • 将这些图像重新推送到Docker Hub
  • 在DockerCloud上重新创建节点群集
  • 在DockerCloud上重写我们的docker堆栈文件
  • 在DockerCloud上重新运行堆栈

我在想

SSH到运行Docker的VM

git pull
npm start 

我是否在正确的轨道上?

2 个答案:

答案 0 :(得分:1)

您可以使用docker service update --image https://docs.docker.com/engine/reference/commandline/service_update/#options 我没有使用AWS的经验,但我认为您可以自动构建和更新。

答案 1 :(得分:1)

如果你想将Docker容器视为VM,你完全可以,但我会强烈反对这一点。容器中的任何内容都是短暂的...如果您对其中的文件进行更改并且容器发生故障,则不会再进行更改。

也就是说,如果您有权访问服务器,则可以执行容器并执行您想要的任何命令。通常对dev有用,但适用于任何容器。

此命令将在所需容器内启动交互式bash会话。有关详细信息,请参阅docs

docker exec -it <container_name> bash

最佳做法可能是更新docker镜像并重新部署。