私は Docker に関する多くのプラクティスを研究してきましたが、かなりの成果を上げています。しかし、私を困惑させ続けていることが 1 つあります。それは、データのみのコンテナーを操作することです。
これが私の現在のセットアップの簡単な概要です。
# nginx
web:
extends:
file: _common.yml
service: web
ports:
- "80:80"
environment:
APPLICATION_ENV: prod
volumes_from:
- data
links:
- db
- redis
# php5-cli
app:
extends:
file: _common.yml
service: app
environment:
APPLICATION_ENV: prod
volumes_from:
- data
links:
- db
- redis
data:
image: <censored-url>
volumes:
- "/var/lib/mysql"
- "/app"
# percona
db:
extends:
file: _common.yml
service: db
volumes_from:
- data
# redis
redis:
extends:
file: _common.yml
service: redis
表示されるの<censored-url>
は、次の Dockerfile を使用したイメージ ビルドです。
FROM busybox
COPY . /app
現在、このセットアップは機能していますが、新しいリリースを処理する方法がわかりません。ソースは git にあります。本番環境にデプロイする場合は、新しいイメージを作成し (FROM busybox はおそらく既存のイメージ URL に置き換える必要があります)、新しいイメージを本番サーバーに取り込みます。
しかし、Web コンテナーなどのデータを更新するにはどうすればよいでしょうか? また、永続データ (/var/lib/mysql) が残っていることも確認する必要があります。
質問が明確であることを願っています。必要に応じて喜んで明確にします。