【Docker】コンテナのvolumeを作成・マウント指定する方法


Dockerコンテナを作成する際に、書くコンテナではデータを保存するボリュームが作成されます。

以下ではコンテナのボリュームを表示するコマンド結果ですが、ボリューム名が文字と数字の羅列となっており、非常に見にくく、どのボリュームがどのコンテナの物なのか分かりません。

~ $ docker volume ls
DRIVER              VOLUME NAME
local               03d7c2274176bc90c7be3f5dfe65f36d70bb2268ecbe1a088efffff148ec32a8
local               6cb5c60b279a8ca5674d1417dd2ac2fa96bcdb734a8f7ee3689b130b8fe6ed98
local               8a03e9d52bdb3f49f676b7dc9519778a8273785bdb0596a95024b2e4b8fd50a8
local               35a99b0b8dbf95504b79f4c404a857458f5d5d91048ea87412f89a611886c7e2
local               043e4f93663bcbbb835f1cf9e1503f07e6f73746ce9e1095c4cf4981374878ea
local               55eb4498745440b5445668d6945eff97e34401d46dcc36b5321a8366e58c7093
local               071d2ebd75917db9493077c11c47869d39ba3489626dcca2b681dc4db0e38ec5
~ $ 

今回は、Dockerコンテナのボリュームの作成とマウント方法をまとめました。


Dockerコンテナで「volume」の任意作成とマウントをする方法

今回は、CentOS8のコンテナ作成で、任意で作成したボリュームをマウントするまでの手順をまとめます。
CentOS8は最新の「latest」イメージをインストールすることとします。

CentOS8最新版イメージをダウンロード

「docker pull」コマンドでCentOSの「最新OSイメージ」をダウンロードします。
バージョンを指定する場合は「centos」の後に数字を追加すれば、簡単にバージョン指定でダウンロードすることができます。

~ $ docker pull centos
Using default tag: latest
latest: Pulling from library/centos
8a29a15cefae: Pull complete 
Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
~ $ 

最新のCentOSのバージョンがダウンロードされていることを以下で確認します。

~ $ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              470671670cac        3 months ago        237MB
~ $ 


Dockerコンテナがマウントする「Volume(ボリューム)」の作成

次に今回構築するCentOS8の「コンテナ」でマウントする「volume」の作成をします。

以下では「test_vol」と言うボリュームを作成するコマンドとなります。

~ $ docker volume create test_vol
test_vol
~ $ 

ボリュームが作成されるとかのようにリストで確認できます。

~ $ docker volume ls
DRIVER              VOLUME NAME
local               test_vol
~ $ 

DockerでCentOS8のイメージと作成したボリュームを使用してコンテナ起動

次にCentOS8のコンテナをイメージから起動しますが、上記で作成したボリュームを利用するので「-v」オプションを使用し、ボリュームをマウントします。

~ $ docker run -itd --privileged -p 2222:22 --name centos8 -v test_vol:/centos8-test_vol centos:latest /sbin/init
aa9d761ab4842050540396438f0c446502fc93bb603f6821d06830db9d7262fc
~ $ 

対象のボリュームがない場合は、自動でボリュームが作成されます。
今回のボリュームは「test_vol」ですが、ない場合は、自動で「test_vol」が作成されます。

正常にコンテナが起動すると以下で確認できます。

~ $ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
9e41c0a5d824        centos:latest       "/sbin/init"        About an hour ago   Up 47 minutes       0.0.0.0:2222->22/tcp   centos8
~ $ 

作成したコンテナにアクセスする場合は以下のコマンドでアクセスします。

~ $ docker exec -it centos8 /bin/bash
[root@93f3d6ddfadd /]# 

Dockerコンテナに任意で作成したボリュームをマウントする手順は以上となります。
ボリュームの管理もしやすいので参考にしてください。


Docker実践ガイド 第2版 impress top gearシリーズ

Docker実践ガイド 第2版 impress top gearシリーズ

古賀 政純
3,762円(10/19 14:23時点)
発売日: 2019/02/18
Amazonの情報を掲載しています

関連記事


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUTこの記事をかいた人

blank

インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!