1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

docker-composeでのvolume作成方法

Posted at

概要

dockerでのvolumeの作成方法に手こずったので、備忘録です。

よくあるvolume作成方法

docker-compose.yml
version: "3"
services:
  db:
    image: mysql
    volumes:
      - ./db/mysql/volumes:/var/lib/mysql

この記述のみではそのコンテナ自体にvolumeが作成され、データを保存を行うことはできるがデータの永続化はできない。
理由は、コンテナが削除されると一緒にデータも削除されてしまうため。

データを永続化するには

docker-compose.yml
version: "3"
services:
  mysql:
    image: mysql
    volumes:
      - mysql-db:/var/lib/mysql
volumes:
  mysql-db:
    driver: local

これが正しい記述となる。

やっていること

  1. mysqlコンテナにデータを格納するvolumeを作成
  2. そのvolumeを「データを永続化するためだけの役割」であるvolumeコンテナとマウント

実際にvolumeを確認

まずdocker-compose.ymlの設定を反映させる&サーバー起動

$ docker-compose up --build

その後、volumeの一覧を表示してみると

$ docker volume ls
DRIVER              VOLUME NAME
local               b1d0c166382335a52c546e1ea2eaddf752d6f410c4c6664bdc59e9606f4bd25
local               myapp_mysql-db

新たにvolumeが作成できていることを確認できるはずです。

参考にした記事

Docker Composeでボリューム作成

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?