通过docker-compose更新一个Container

假设我有一个包含5个应用程序的docker-compose.yml文件,并且通过docker-compose up -d启动了它们。现在,我想要使用这些应用程序的更新。 所以我拉这个新的形象,…我怎样才能停止这一个旧的容器, 而不停止其他四个容器

  • 使用docker-compose down && docker-compose up -d会停止并重新启动我的所有容器,所以这是错误的。
  • 使用docker stop app_1 && docker run app_1可以工作,但对我来说似乎是“错误的”,因为它不是docker-compose命令。

那么做这个的“docker方式”是什么?

再次运行docker-compose up -d (以前没有down / stop / kill )。

初始docker-compose.yml

 version: "2" services: db1: command: mongod image: mongo:3.2.4 ports: - "27020:27017" db2: command: mongod image: mongo:3.2.4 ports: - "27021:27017" 

更新db2

 version: "2" services: db1: command: mongod image: mongo:3.2.4 ports: - "27020:27017" db2: command: mongod image: mongo:3.2.6 ports: - "27021:27017" 

再次运行docker-compose up -d

 Pulling db2 (mongo:3.2.6)... 3.2.6: Pulling from library/mongo 47994b92ab73: Pull complete a3ed95caeb02: Pull complete 71b6becd9768: Pull complete 7d5d40f9dc7b: Pull complete 9dc152e647de: Pull complete 3f1f69340f17: Pull complete 82a29b50f1d2: Pull complete 97869c61a050: Pull complete 50aa2bf3bccc: Pull complete 03913f2c5b05: Pull complete Digest: sha256:29ee114c0ce96494553cd72f18d92935b36778b77bce167fc9962e442d8c7647 Status: Downloaded newer image for mongo:3.2.6 composetest_db1_1 is up-to-date Recreating composetest_db2_1 

输出的最后两行显示预期的行为。