Docker for WindowsとDocker on WSLにおけるボリュームマウント

はじめに

まずは、今回の説明におけるホストマシンの環境から、

[foo@host]$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.1 LTS (Bionic Beaver)"
:

OSは、Windows Subsystem for Linux (WSL) 上の Ubuntu Linux 18.04.1
そして、WSL上にて導入したDockerクライアントとdocker-composeのバージョンは次の通り。

[foo@host]$ docker --version
Docker version 18.09.1, build 4c52b90

[foo@host]$ docker-compose version
docker-compose version 1.23.2, build 1110ad01
docker-py version: 3.6.0
CPython version: 3.6.7
OpenSSL version: OpenSSL 1.1.0f  25 May 2017

最後に、Dockerエンジンの情報は次の通り。Docker for Windows をインストールして利用中。この環境構築については、前の記事「WSLにてDockerを利用する」を参考に。

[foo@host]$ curl -i http://localhost:2375/version
HTTP/1.1 200 OK
Api-Version: 1.39
Content-Length: 560
Content-Type: application/json
Date: Fri, 15 Feb 2019 22:22:24 GMT
Docker-Experimental: false
Ostype: linux
Server: Docker/18.09.2 (linux)
{"Platform":{"Name":"Docker Engine -  Community"},"Components"
:

Hyper-V上の仮想マシンにてDockerサーバが動いている状況です。

docker run コマンドを実行すると、イメージからコンテナを生成し、Dockerエンジンはイメージの中に読み書き可能なファイルシステムを作成します。コンテナが動いている(running)あるいは停止中(exited)状態であれば、そのファイルシステムを保持しますが、コンテナを削除してしまうと、コンテナ動作中に保存した(書き込んだ)データは消えてなくなります。

「-v」オプションを使用すると、ホストとコンテナの間でファイルを共有することができます。これは例えばホストにWebサイトのコンテンツを保存しておき、それをWebサーバイメージから構築されたコンテナにマウントしてコンテンツを公開するというようなことが可能です。

では順に説明します。

“Docker for WindowsとDocker on WSLにおけるボリュームマウント” 続きを読む