22

他の人にも同様の質問があったことは承知していますが、これは v2 構成ファイル形式を使用しており、そのためのものが見つかりませんでした。

MemSQL をいじる非常に単純なテスト アプリを作成したいのですが、ボリュームが削除されないようにすることができませんdocker-compose down。私が Docker Docs を正しく理解していれば、明示的に指示することなくボリュームを削除すべきではありません。すべてが機能しているように見えdocker-compose upますが、ダウンしてから再びアップすると、すべてのデータがデータベースから削除されます。

良い習慣として推奨されているように、別の memsqldata サービスを別のデータ層として使用しています。

ここに私の docker-compose.yml があります:

version: '2'
services:
    app:
        build: .
        links:
            - memsql
    memsql:
        image: memsql/quickstart
        volumes_from:
            - memsqldata
        ports:
            - "3306:3306"
            - "9000:9000"
    memsqldata:
        image: memsql/quickstart
        command: /bin/true
        volumes:
            - memsqldatavolume:/data

volumes:
    memsqldatavolume:
        driver: local
4

5 に答える 5

4

あなたが使用していて、ここdocker-compose downのドキュメントを見れば

コンテナーを停止し、によって作成されたコンテナー、ネットワーク、ボリューム、およびイメージを削除しupます。デフォルトでは、コンテナとネットワークのみが削除されます。

そうです、ボリュームを削除するべきではありません (デフォルトでは)。バグであるか、デフォルト設定を変更した可能性があります。しかし、あなたにとって正しいコマンドはdocker-compose stop. コマンドのより単純なケースでいくつかのテストを作成しようとしdownます。

于 2016-02-25T08:17:32.100 に答える
3

これが役立つかどうかはわかりません。docker-compose up -dコンテナを使用すると、ダウンロードされ、イメージが作成されます。docker イメージを停止するには、 を使用docker-compose downします。イメージは残り、次のコマンドで再起動できます。docker-compose start

アップ/ダウン コマンドを使用していましたが、停止/開始を試みるまでデータを失い続け、現在はデータが保持されています。

于 2016-10-12T13:27:38.953 に答える