ボリュームしたい(volume

// ボリュームの確認
$ docker volume ls

// ボリュームを作成
$ docker volume create ボリューム名

docker volumeコマンドで、コンテナ内のデータを永続化させるためのボリュームを操作できます。 ボリュームに紐づけておかないと、コンテナ内に作成したデータは、コンテナを削除するときに消えてしまいます。

ボリュームにはnamed volumebind volumeの2種類があります。 named volumeはDocker内部(=/var/lib/docker/volumes/...)に作成されるボリュームです。 binde volumeは、ホストPCのパスを、コンテナにマウントするボリュームです。

データベースなど、直接アクセスしなくてもよいデータはnamed volume、 設定ファイルやHTML/CSSなどのようにホストPCと同期させたいデータはbind volumeで作成するとよいです。

ボリュームの詳細を知りたい

$ docker volume inspect ボリューム名

named volumeを使ったときに、データが保存されているパスなどの詳細を確認できます。

Composeしたい(volumes

services:
  コンテナ名:
    image: イメージ名:タグ
    volumes:
      # named volume
      - db_data:/var/lib/mysql
      # bind volume
      - ./html:/var/www/html
volumes:
  db_data:

compose.yamlvolumesキーでボリュームを設定できます。 docker compose up -dすると、自動でボリュームを紐づけてくれます。

docker compose downでコンテナを削除しても、ボリュームは残ります。 docker compose down --volumesでボリュームも削除できます。