dockerコンテナのボリュームをホストのボリュームと紐づける

LINEで送る
Pocket

はじめに

docker01_logo

前回の記事では、「コンテナのポートをホストのポートに割り当てる」手順について書いて行きましたが、今回はdockerコンテナのボリュームをホストのボリュームと紐づける手順について書いて行きたいと思います。

 

環境

  • OS:CentOS  7.3.1611 (Core)
  • Kernel:3.10.0-514.21.2.el7.x86_64
  • docker-ce:17.03.1.ce-1.el7.centos.x86_64

 

手順

今回は、nginxのコンテナを起動して、ホストのボリュームに置いたテスト用Webページを、ブラウザで確認するところまでを実施したい思います。

nginxイメージの取得・確認手順は、前回の記事を参照ください。

 

コンテナと紐づけるホストのディレクトリを作成

# mkdir /tmp/www/
# ls -d /tmp/www/
/tmp/www/
#

 

テストページの作成

# vi /tmp/www/nginx_test.html
以下の内容を作成

# cat /tmp/www/nginx_test.html
<html>
<head>
 <title>test_page</title>
</head>
<body>
 <h1>Test Page !!</h1>
</body>
</html>
#

nginxコンテナ起動

# docker run -d -p 8080:80 -v /tmp/www/:/usr/share/nginx/html:ro nginx
db3a2216f8945c79d548a38dad2a867076ebb069ddab4e768f71f2dba7750936
#
  • -d : コンテナをバックグランドで起動
  • -p : <ホストポート>:<コンテナポート> で、ホストとコンテナのポートを紐づける
  • -v : <ホストパス>:<コンテナパス>:[オプション]でホストとコンテナのボリュームを紐づける
    • 通常「-v」は読み書き可能でボリュームを紐づけますが、「ro」オプションで読み取り専用となります。

コンテナ状態確認

# docker ps
CONTAINER ID IMAGE COMMAND                CREATED        STATUS        PORTS                NAMES
db3a2216f894 nginx "nginx -g 'daemon ..." 12 seconds ago Up 12 seconds 0.0.0.0:8080->80/tcp determined_hoover
#

nginxコンテナの起動は確認出来ました。

この表示でコンテナのポートの紐づきは確認できますが、ボリュームの紐づきは確認出来ません。

別のオプションで確認してみましょう。

コンテナの詳細情報の確認

# docker inspect --format='{{.Mounts}}' db3a2216f894
[{bind /tmp/www /usr/share/nginx/html ro false }]
#
  • inspect : コンテナの詳細情報を表示
  • –format : 出力を整形します。

ここでは、「.Mounts」を指定して、ボリュームのマウント状態のみを表示しています。

上記は、ホストの「/tmp/www」がコンテナの「/usr/share/nginx/html」を読み取り専用「ro」でマウントしている事を意味します。

nginxコンテナへの接続確認

プラウザで、「http://<ホストのIPアドレス>:8080/nginx_test.html」で接続します。

nginx_container_test_2

ホストのボリュームに配置したテストページが表示された事より、コンテナのボリュームとの紐づきが確認出来ました。

 

まとめ

これで、コンテナのボリュームをホストのボリュームと紐づける手順について確認出来ました。

コンテナは環境の作成だけでなく、削除も手軽に出来る事がメリットではありますが、コンテナを削除するとそのデータも削除されてしまいます。

そのため、コンテナは削除したいがデータは残したいと言う際に、このボリューム機能が使用されます。

 

次回以降では、コンテナ間の通信について書いて行きたいと思います。

 

LINEで送る
Pocket

コメントを残す

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

16 − five =