什么是最好的方式将更新的更改拉到已经部署的Docker容器?
我必须执行这些步骤来通过DockerCloud将我的Nodejs / Angular站点部署到AWS
- 编写Dockerfile
- 基于我的Dockerfiles构buildDocker映像
- 将这些图像推送到Docker Hub
- 在DockerCloud帐户上创build节点群集
- 在DockerCloud上写入Docker堆栈文件
- 在DockerCloud上运行堆栈
- 查看在AWS中运行的实例,并可以看到我的网站
如果我们需要一个小东西的变化,需要从我的项目回购拉。 但是,我们已经部署了我们的docker工人,你可能知道。
将这些更改拖到已部署的Docker容器中的最佳方式是什么?
我希望我们不必:
- 重build我们的Docker镜像
- 将这些图像重新推送到Docker Hub
- 在DockerCloud上重新创build我们的节点群集
- 在DockerCloud上重新编写Docker堆栈文件
- 在DockerCloud上重新运行堆栈
我刚在想
SSH到运行Docker的虚拟机中
git pull npm start
我在正确的轨道上?
您可以使用docker service update --image
https://docs.docker.com/engine/reference/commandline/service_update/#options我还没有使用AWS的经验,但我认为你可以自动构build和更新。
如果你想把一个Docker容器当作虚拟机,你完全可以,但是我会强烈地提醒你不要这样做。 容器中的任何东西都是短暂的…如果您对其中的文件进行了更改,并且容器发生故障,则不会再进行更改。
也就是说,如果你有权访问服务器,你可以在容器中执行任何你想要的命令。 通常对开发有帮助,但适用于任何容器。
这个命令将启动你想要的容器内的交互式bash会话。 有关更多信息,请参阅文档 。
docker exec -it <container_name> bash
最佳做法可能是更新Docker镜像并重新部署它。