2016-09-28 13 views
0

ドッカー作成用のファイルでコンテナを更新したいと思います。 sharelatex 0.2からv0.3.10。他のコンテナとそのデータを失うことなくこれを行うにはどうすればよいですか? 現在のコンテナのバックアップを作成し、更新が失敗した場合はそのコンテナに戻すこともできますか?docker-composeの一部としてドッキング用のコンテナをアップグレード

私の現在のドッキングウィンドウ-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 

答えて

1

あなたは、常にボリュームに重要な状態(データ)を保存する必要があります。コンテナは常に使い捨てとして扱う必要があります。そのため、ボリュームを再利用すると、データや状態が失われることはありません。

既定では、docker-compose upは、構成が変更されていない限り、既存のコンテナを再利用しようとします。 1つのサービスのみを変更すると、他のサービスコンテナは停止しません。

あなたの場合は既にボリュームを使用しているようですので、バージョンを変更してdocker-compose upを実行するだけで、必要な処理を行う必要があります。

+0

ありがとうございます!つまり、 'image:sharelatex/sharelatex:0.20'を.ymlの' image:sharelatex/sharelatex:latest'に変更すると、 'docker-compose up'は' sharelatex'という名前の新しいsharelatexコンテナを作成するだけです。古いものを交換しますか? – bonanza

+1

それは正しいです。 – dnephin

+0

もう一度ありがとう!古いものをバックアップとして保つ方法はありますか?古いものを元に戻すにはどうすれば.ymlを変更する必要がありますか? – bonanza

関連する問題