我想在我的docker-compose文件中更新一个容器:例如,从sharelatex 0.2到v0.3.10。如何才能在不丢失其他容器及其数据的情况下做到这一点?是否也可以创建当前容器的备份,并在更新失败时切换回它?
我当前的docker-compse文件:
version: '2'
services:
sharelatex:
restart: always
image: sharelatex/sharelatex:0.20
container_name: sharelatex
depends_on:
- mongo
- redis
privileged: true
ports:
- 80:80
links:
- mongo
- redis
volumes:
- ~/sharelatex_data:/var/lib/sharelatex
environment:
SHARELATEX_MONGO_URL: mongodb://mongo/sharelatex
SHARELATEX_REDIS_HOST: redis
SHARELATEX_APP_NAME: 'Our ShareLaTeX'
mongo:
restart: always
image: mongo
container_name: mongo
expose:
- 27017
volumes:
- ~/mongo_data:/data/db
redis:
restart: always
image: redis
container_name: redis
expose:
- 6379
volumes:
- ~/redis_data:/data发布于 2016-09-29 01:24:39
您应该始终将任何重要的状态(数据)存储在卷中。容器应该始终被视为一次性容器,因此当您升级时,卷将被重用,并且不会丢失任何数据或状态。
默认情况下,只要容器的配置没有改变,docker-compose up将尝试重用任何现有的容器。如果您只更改了一个服务,其他服务容器将不会停止。
在您的例子中,看起来您已经在使用卷了,所以只需更改版本并运行docker-compose up就可以了。
https://stackoverflow.com/questions/39748703
复制相似问题