エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【docker】docker-compose.ymlのvolumesって何してるの?【304日目】

どういう意味?

手元のOSのディレクトリをコンテナの中のディレクトリにマウントする

マウント?

イメージとしては、コンテナの該当ディレクトリは、
手元のOSのディレクトリを使うよ。

具体的な例だと、手元のOSのディレクトリでファイルを新しく作ると、
コンテナの中でもファイルが出来上がるよ。

手元のOSで./webにtest.htmlを作ると、コンテナ内の/var/www/webにも、test.htmlが作られる。

    volumes:
      - ./web:/var/www/web

何が嬉しいの(php)

例えば、phpのコンテナでこれをすると、
手元で./webにプログラムを書いた時に、コンテナに自動反映される。

普通なら、 docker buildで何度もコンテナ作り直す必要があるので便利。

何が嬉しいの(mysql)

データの永続化。

普段、コンテナを落とすと、コンテナの中のデータは一から作り直しになってしまう。
でも、手元のデータをマウントしているなら、コンテナを立ち上げる度にデータが消えません。

ただ、手元のOSの該当ディレクトリを消したら、当然なくなります!

docker-composeの例

github.com