私はこのアプリを docker + fig を使用してオーケストレーションしようとしています。これは、試行の初日にうまく機能します。データベースファイルを永続化したいデータコンテナと、アプリで使用されるredis + mysqlコンテナを使用します。
mysql コンテナーを起動する/var/lib/mysql
と、内部でデータ ファイルが検索され、何も見つからない場合は、デフォルトの sb が作成されます。これを入力すると、ファイルが作成され、データ ボリュームに永続化されます。
fig を学習している間fig rm --force mysql
、mysql コンテナーを削除する必要がありました。データ コンテナー上でデータが安全であることを知っていれば、恐れることなくこれを実行できました。ホストで a を実行するls
と、mysql ファイルがそのまま表示されます。
再度実行すると問題が発生しfig up
、mysql コンテナーが再度作成されます。同じボリュームを共有していて、古い mysql ファイルがまだ存在しているにもかかわらず、この新しいコンテナーは、共有ボリュームが空であるかのように新しいデータベースを作成します。これは、コンテナを閉じた場合にのみ発生し、rm
図を閉じて元に戻した場合には発生しません。
それが役立つ場合、これが私の図ファイルです:
data:
image: ubuntu:12.04
volumes:
- /data/mysql:/var/lib/mysql
redis:
image: redis:latest
mysql:
image: mysql:latest
ports:
- 3306
environment:
MYSQL_DATABASE: *****
MYSQL_ROOT_PASSWORD: *****
volumes_from:
- data
web:
build: .
dns: 8.8.8.8
command: python manage.py runserver 0.0.0.0:8000
environment:
- DEBUG=True
- PYTHONUNBUFFERED=1
volumes:
- .:/code
ports:
- "8000:8000"
links:
- data
- mysql
- redis
新しい mysql コンテナが既存のファイルを使用しない理由はありますか?