我如何重新启动我的网站,并应用新的变化到一个docker容器?



我想重新启动我的docker容器来应用新的更改。我不想在每次修改时都创建一个新的映像,而不是它会覆盖旧的映像,然后使用重写的映像重新启动容器。

我已经尝试停止容器,然后用与旧容器相同的名称构建一个映像。然后写docker -compose up -d。问题是这会创建一个名为-web

的新容器

标准方法是构建一个新映像,停止现有的服务器容器,然后基于新映像启动一个新容器。如果你使用Docker Compose,这个长度可以小到

docker-compose build
docker-compose up -d

将此与使用Java或Go等编译语言运行服务器进行比较。这里的工作流程完全相同:将更新后的源代码编译为新的jar文件或二进制文件,停止现有服务器,然后启动一个新的服务器。通常没有理由试图保留现有进程并用新代码更新它。

同样,容器是单个(临时)进程的(临时)包装器。你需要相同的容器没有特别的原因;在正常操作中,您应该能够删除和重新创建容器而不会丢失任何内容。在Docker中,您需要相当常规地重新创建容器以更改各种仅启动时间选项,并更新底层映像。如果你转向像Kubernetes这样的集群环境,这一点变得更加重要:你将有一个容器的多个副本,因此它们不能具有持久状态,并且有可能在你的直接控制之外删除和重新创建容器。

最新更新