[解決済み] Docker Compose - 複数のコンテナ間で名前付きボリュームを共有する
質問
docker-composeとv3を使っています。ドッカーでボリュームをマウントしようとしています。
./appdata:/appdata
これをボリュームとして持っていて、複数のコンテナからそのボリュームを参照したい。その
ボリューム構成参照
を表示するだけです。
data-volume:
を名前付きボリュームとし、値を持たないので、上記のようには見えません。
services:
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes:
- app-volume
php:
build: ./php/
expose:
- 9000
volumes:
- app-volume
volumes:
app-volume: ./appdata:/appdata
これによって
<ブロッククオートERROR: ファイル './docker-compose.yml' において、ボリューム 'app-volume' は文字列ではなく、マッピングでなければなりません。
を変更する必要があることは明らかです。
volumes
キーと値のペアがありますが
どのように
を変更し、サービス間でボリュームを共有できるようにします。
も調べてみました。
volumes_from
が、これは事実上、他のコンテナからの継承を可能にするだけです。誰かが
volumes_from
を、必要なマッピングを含む別のコンテナで使用することができます。
command: true
を設定して、そのコンテナが実際に実行されることがないようにすること。
どうすればいいのでしょうか?
注:私は する は、以下のように動作しています。
nginx:
volumes:
- ./appdata:/appdata
php:
volumes:
- ./appdata:/appdata
しかし、これは単なる重複であり、名前付きボリュームがそれを回避してくれることを期待しています :-)
解決方法は?
docker-compose 3からdocker named volumeが削除されました。
ただし 拡張フィールド ボリュームソースの重複を避け、将来のタイプミスを防ぐためです。
version: '3.5'
x-services-volume:
&services-volume
type: bind
source: ./appdata
target: /appdata
services:
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes: *services-volume
php:
build: ./php/
expose:
- 9000
# Use same way as for nginx if target override not needed.
volumes:
- <<: *services-volume
target: /opt/target-override
NOTE この機能は、バージョン3.4のファイルフォーマットから利用可能です。
関連
-
[解決済み】apt-get でインストールしても docker コマンドが見つからない。
-
[解決済み】docker: ドライバがエンドポイントウェブサーバの外部接続のプログラミングに失敗しました。
-
[解決済み] 古いDockerコンテナを削除する方法
-
[解決済み] Docker-Composeを使用して、複数のコマンドを実行する方法
-
[解決済み] docker_compose.yml の links と depends_on の違いについて
-
[解決済み】特定のコンテナのみdocker-composeを立ち上げる。
-
[解決済み】docker-composeが常に新しいイメージからコンテナを再作成するようにするにはどうすればよいですか?
-
[解決済み】docker composeでホストディレクトリをボリュームとしてマウントする方法
-
[解決済み】Docker化したPostgresデータベースのデータをボリュームで永続化する方法
-
[解決済み】Dockerは使用量が多いのに、Dockerコンテナがない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】docker-compose.ymlでdocker execを実行する方法
-
[解決済み】ドッカーコンテナがすぐに終了してしまう理由
-
[解決済み] ドッカーコンテナで接続が拒否される
-
[解決済み] Dockerfileの "RUN chmod "が有効でない。
-
[解決済み] Dockerのエラーです。Cannot start service ...: ネットワーク 7808732465bd529e6f20e4071115218b2826f198f8cb10c3899de527c3b637e6 が見つかりませんでした。
-
Http: サーバーが HTTPS クライアントに HTTP 応答を返した 解決策
-
docker パーミッションが拒否されました。
-
docker-composeの使い方ガイド
-
DockerRegistryV2 イメージの削除
-
[解決済み] Django - ファイルを作成し、それをモデルの FileField に保存する方法は?