項目 | ボリュームマウント | バインドマウント |
---|---|---|
記憶領域 | ボリューム | ディレクトリやファイル |
マウントの場所 | DockerEngine管理下 | どこでも可能 |
マウント時の動作 | ボリューム作成してマウント | R既存のファイルやフォルダをマウント |
内容の編集 | Dockerコンテナを経由して行う | 普通のファイルとして扱う |
バックアップ | 複雑な手順 | 普通のファイルとして扱う |
バインドマウント
PCにマウントするフォルダ作成
「index.html」を作成。中身は適当なhtmlを作成しておく
コマンド実行
docker run –name apa000ex19 -d -p 8089:80 -v PCのフォルダ:/usr/local/apache2/htdocs/
docker run --name apa000ex19 -d -p 8089:80 \
-v /Users/ユーザ名/勉強/Docker_bindMount:\
/usr/local/apache2/htdocs/ httpd
下記にアクセスし「Index of /」と出てくるのを確認
http://localhost:8089/
マウントしたPCフォルダに作成した「index.html」を入れる
http://localhost:8089/にアクセスし作成したhtml画面になっていればOK
ボリュームマウント
ボリュームを作成
docker volume create apa000vo1
ボリューム確認
docker volume ls
コンテナ作成&ボリュームマウント
docker run --name apa000ex19 -d -p 8089:80 \
-v apa000vo1:\
/usr/local/apache2/htdocs/ httpd
ボリュームの詳細
docker volume inspect apa000vo1
「Mountpoint」と「Name」を確認
[
{
"CreatedAt": "2023-08-14T05:48:16Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/apa000vo1/_data",
"Name": "apa000vo1",
"Options": null,
"Scope": "local"
}
]
マウントされているかの確認
docker container inspect apa000ex19
「Name」「Source」「Destination」の確認
"Mounts": [
{
"Type": "volume",
"Name": "apa000vo1",
"Source": "/var/lib/docker/volumes/apa000vo1/_data",
"Destination": "/usr/local/apache2/htdocs",
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": ""
}
],
ボリュームのバックアップ
圧縮してバックアップ
pcに「/Users/ユーザー名/勉強/Docker_bindMount」フォルダを作成
コマンド実行し
「/Users/ユーザー名/勉強/Docker_bindMount」
に圧縮ファイルができていればOK
解凍すれば「index.html」がある
※コンテナはすぐに削除される
バックアップのためだけのコンテナのため
docker run --rm -v apa000vo1:/mount_moto \
-v /Users/ユーザー名/勉強/Docker_bindMount:/mount_saki \
busybox tar czvf /mount_saki/backup_apa.tar.gz -C /mount_moto .
リストア(復元)
docker run --rm -v apa000vo1:/mount_moto \
-v /Users/ユーザー名/勉強/Docker_bindMount:/mount_saki \
busybox tar xzvf /mount_saki/backup_apa.tar.gz -C /mount_moto
後始末
#コンテナ停止
docker stop apa000ex19
#コンテナ削除
docker rm apa000ex19
#コンテナ確認
docker ps -a
#ボリューム確認
docker volume ls
#ボリューム削除
docker volume rm apa000vo1
#イメージ確認
docker image ls
#イメージ削除
docker image rm httpd busybox