0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerの永続化 ボリュームとバインドマウント

Last updated at Posted at 2025-03-19

Dockerでコンテナを永続化しないといけない理由

Dockerでコンテナを作り、その中で作業をしていて誤ってコンテナを消してしまったときにコンテナの中の作業した内容もそのまま消えてしまうという問題がある.

しかし、永続化すればコンテナを消したとしてもコンテナの中の作業内容は消えずに保存しておくことができる。

Dockerの永続化のやり方

永続化のやり方はボリュームバインドマウントの2つある。

やり方1 ボリュームを使った永続化

ボリュームとは

ボリュームとはコンテナでの変更内容をDocker専用の管理領域にデータを保存するやり方。

パフォーマンスが高く、コンテナ削除後したとしてもコンテナでの変更内容はDocker専用の管理領域に残る。

①ボリュームの作り方

まず以下のコマンドでボリュームを作成する

docker volume create <ボリューム名>

②ボリュームが作成されているかを確認する

以下のコマンドでボリュームが作成されているかを確認する

docker volume ls

③ボリュームとコンテナを接続する

以下のコマンドでボリュームとコンテナを接続する

docker container run -it -v <ボリューム名>:<コンテナ内の絶対パス> <イメージ名>

例 コンテナの/appというディレクトリの変更内容をmy-volumeというボリュームに接続することで/appの中の変更内容はmy-volumeで永続化される。

docker container run -it -v my-volume:/app ubuntu

ボリュームのいろいろなコマンド

ボリュームの削除コマンド

docker volume rm <ボリューム名>

ボリュームの詳細情報を表示するコマンド

docker volume inspect <ボリューム名>

やり方2 バインドマウントを使った永続化

バインドマウントとは

ホストの任意のディレクトリをコンテナ内にマウントすることで、コンテナの変更内容をホストの任意のディレクトリに保存することができる。

そのため、コンテナを削除しても変更内容はホストの任意のディレクトリに残る。

ホスト環境の影響を受けやすいが、開発時に自分のディレクトリを編集するため便利である。

バインドマウントの作り方

docker container run -v <ホストの絶対パス>:<コンテナ内の絶対パス> <イメージ名>


自分のディレクトリの/docker/bindとコンテナの中のディレクトリの/appをバインドマウントするコマンド

docker container run -it -v /c/Users/okada/docker/bind:/app ubuntu
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?