#author("2018-08-30T18:38:27+09:00","","")

#author("2018-08-30T18:38:41+09:00","","")

[[CentOS7]]

Docker : 永続ストレージを利用する

*Docker : 永続ストレージを利用する [#e1f2c998]


コンテナーが破棄されると当然コンテナー内部のデータも消失するため、コンテナーで作成したデータを永続化するには、外部ストレージを利用する必要があります。

Docker 公式で推奨されているのは、データ保管専用のコンテナーを作成して、そこへデータを保管する方法です。

例として、必要最小限の OS 機能を備えた busybox イメージでデータ保管用コンテナーを作成します。

|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi Dockerfile|
|&color(lightpink){# 新規作成}; &br;  FROM busybox &br; MAINTAINER HogeCOM <admin@hoge.com> &br;  &br; VOLUME /storage &br; CMD /bin/sh &br;  &br; &color(lightpink){# イメージのビルド};|
|[root@localhost ~]# docker build -t storage .|
|[root@localhost ~]# docker images|
|REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE &br; storage             latest              65c5cce81114        20 seconds ago      1.113 MB &br; docker.io/centos    latest              14dab3d40372        6 days ago          194.7 MB &br; docker.io/busybox   latest              fc0db02f3072        13 days ago         1.113 MB|
|&color(lightpink){# 任意の名前を付けてコンテナー生成};|
|[root@localhost ~]# docker run -i -t --name storage_server storage|
|/ # exit|



任意のコンテナーからデータ保管用コンテナーを利用するには、以下のように「--volumes-from」を指定します。

|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# docker run -i -t --name centos_server --volumes-from storage_server centos /bin/bash|
|[root@b9b7a2d35b51 /]# df -hT|
|Filesystem                              Type   Size  Used Avail Use% Mounted on &br; /dev/mapper/docker-253:0-67164897-..... ext4    99G  266M   94G   1% / &br; tmpfs                                   tmpfs  2.0G     0  2.0G   0% /dev &br; shm                                     tmpfs   64M     0   64M   0% /dev/shm &br; tmpfs                                   tmpfs  2.0G     0  2.0G   0% /sys/fs/cgroup &br; /dev/mapper/centos-root                 xfs     27G  3.2G   24G  13% /storage &br; tmpfs                                   tmpfs  2.0G     0  2.0G   0% /run/secrets|
|[root@b9b7a2d35b51 /]# echo "persistent storage" >> /storage/testfile.txt|
|[root@b9b7a2d35b51 /]# ll /storage|
|total 4 &br; -rw-r--r-- 1 root root 19 Dec 22 02:15 testfile.txt|



データ保管用コンテナーを起動すると、データが保管されていることを確認できます。

|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# docker start storage_server|
|[root@localhost ~]# docker attach storage_server|
|/ # cat /storage/testfile.txt  &br; persistent storage|



データ保管用コンテナーを利用する方法以外にも、ホスト側の任意のディレクトリをコンテナーにマウントして利用することも可能です。

|BGCOLOR(black):COLOR(white):|c
|&color(lightpink){# データ保管用ディレクトリ作成};|
|[root@localhost ~]# mkdir -p /var/docker/disk01|
|[root@localhost ~]# echo "persistent storage" >> /var/docker/disk01/testfile.txt|
|&color(lightpink){# 作成したディレクトリをコンテナーの /mnt にマウントして起動};|
|[root@localhost ~]# docker run -i -t -v /var/docker/disk01:/mnt centos /bin/bash|
|[root@bc9a4d5578a6 /]# df -hT|
|Filesystem                              Type   Size  Used Avail Use% Mounted on &br; /dev/mapper/docker-253:0-67164897-..... ext4    99G  266M   94G   1% / &br; tmpfs                                   tmpfs  2.0G     0  2.0G   0% /dev &br; shm                                     tmpfs   64M     0   64M   0% /dev/shm &br; tmpfs                                   tmpfs  2.0G     0  2.0G   0% /sys/fs/cgroup &br; /dev/mapper/centos-root                 xfs     27G  3.2G   24G  13% /mnt &br; tmpfs                                   tmpfs  2.0G     0  2.0G   0% /run/secrets|
|[root@bc9a4d5578a6 /]# cat /mnt/testfile.txt|
|persistent storage|

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS