永続ボリューム

Docker 中級

Mike Metzger

Data Engineering Consultant

ボリュームとは

  • ボリュームは、コンテナイメージやホストのファイルシステムと無関係にデータを保存する方法
  • コマンドライン(または API)で管理
  • 複数コンテナで共有可能
  • ファイル共有/バインドマウントより高性能
  • 削除するまで存続

ボリュームのマウント.png

1 画像は https://docs.docker.com を基に改変
Docker 中級

ボリュームの管理

  • docker volume
  • docker volume create <volumename>
  • docker volume ls または docker volume list
  • docker volume inspect
    • Name、Mountpoint、Options などのメタデータを表示
  • docker volume rm
Docker 中級

ボリューム作成の例

bash> docker volume create sqldata
sqldata
bash> docker volume ls
DRIVER    VOLUME NAME
local     2f2b7f710551e004dcdd9edf4cad31c37826b428de12f1c04ca02305d216ab00
local     14da7ff0c6eb29f644e6f9f9d59bbcf56b3699c04881dd7cbcaa9ecd6bef239c
local     150aa3c5c7aee30ffd1ec7ecf39f03989bf561536a9413ebed96ffbaa537d103
local     sqldata
...
Docker 中級

volume inspect の例

bash> volume inspect sqldata

[ { "CreatedAt": "2024-01-27T04:27:51Z", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/sqldata/_data", "Name": "sqldata", "Options": null, "Scope": "local" } ]
Docker 中級

ボリュームのアタッチ

  • -v オプションを使用
    • docker run -v <volumename>:<destination path>:<options>
    • volume name は既存ボリューム名
    • destination path はマウント先(例: /data)
    • options は任意。ro で読み取り専用など
  • bind マウント同様に --mount も利用可
$ docker run -v sqldata:/data postgres
Docker 中級

ドライバー

  • Docker ボリュームの保存方法
  • 例:
    • ローカルファイルシステム(既定)
    • NFS(Unix のファイル共有)
    • SMB / CIFS(Windows のファイル共有)
Docker 中級

練習しましょう!

Docker 中級

Preparing Video For Download...