質問: 次のdocker-compose.ymlの「volumes」の部分の意味を教えてください。 (docker-compose.ymlの内容を一部抜粋しています) ``` version: '3' services: db: image: mysql:5.7 container_name: db_mysql volumes: - db-volume:/var/lib/mysql volumes: db-volume: ``` dbコンテナのvolumeとしてトップレベルで定義された「db-volume」を dbコンテナの「/var/lib/mysql」に作成する という意味であっているでしょうか?
回答: > > dbコンテナのvolumeとしてトップレベルで定義された「db-volume」を > > dbコンテナの「/var/lib/mysql」に作成する > > という意味であっているでしょうか? > > > **作成する**というのがちょっと惜しいですね。 トップレベルで定義された「db-volume」をdbコンテナの「/var/lib/mysql」に**マウントする** という意味になります。 本質問で定義されている`db-volume`は`Named volume(名前付きボリューム)`と言われています。 これはdockerコマンドで参照する時や、複数のサービスで再利用する(以下簡単な例)時等に便利です。 ``` services: db: image: mysql:5.7 container_name: db_mysql volumes: - db-volume:/var/lib/mysql backup: image: backup volumes: - db-volume:/var/lib/backup/data volumes: db-volume: ```