[Docker] ローカルのファイルを docker のコンテナにマウントする

マウントするには docker-compose.yml に volumes を設定する。

[markdown]
前回、Dockerfile 内で `ADD` を利用したが、文字通りファイルをコンテナに追加(コピー)する命令。

> * [Docker for Linux 入門 | deadwood](https://www.d-wood.com/blog/2016/06/30_8231.html)
> * [Docker for Mac 入門 | deadwood](https://www.d-wood.com/blog/2016/07/01_8235.html)

開発での利用を想定すると、マウントが必要そう。
ドキュメントを読むと Sharing the OS X file system with Docker containers という記述がある。

> * [Sharing the OS X file system with Docker containers](https://docs.docker.com/docker-for-mac/osxfs/)

“`prettyprinted
% docker version
Client:
Version: 1.12.0-rc2
API version: 1.24
Go version: go1.6.2
Git commit: 906eacd
Built: Fri Jun 17 20:35:33 2016
OS/Arch: darwin/amd64
Experimental: true
Server:
Version: 1.12.0-rc2
API version: 1.24
Go version: go1.6.2
Git commit: a7119de
Built: Wed Jun 29 10:03:33 2016
OS/Arch: linux/amd64
Experimental: true
“`

## docker コマンド

`run -v` オプション(Volume)でマウントできるとのこと。

> [Docker for Mac プライベートベータを早速使ってみた! – paiza開発日誌](http://paiza.hatenablog.com/entry/docker_for_mac)
>
> MacのファイルシステムはDockerホストにマウントされており、ファイルシステム全体が”/Mac”として参照できます。 その他、”/Users”, “/var/log”, “/Users”, “/Volumes”, “/tmp”, “/private”もマウントされています。

`-v` オプションで `deadwood-httpd` ディレクトリを コンテナの `/var/www/html/` にマウントする。

“`prettyprinted
% docker run -v “/Users/****/projects/sandbox-docker/deadwood-httpd/:/var/www/html/” -it “deadwood/httpd” bash
[root@c139d1bf89b4 /]# ls var/www/html/
Dockerfile index.html
“`

ローカルでファイルを作成する。

“`prettyprinted
% touch deadwood-httpd/foo.html
% ls deadwood-httpd
Dockerfile foo.html index.html
“`

ファイルの追加を確認する。

“`prettyprinted
[root@c139d1bf89b4 /]# ls var/www/html/
Dockerfile foo.html index.html
“`

## docker-compose.yml

docker-compose.yml に `volumes` を設定する。

> * [Compose ファイル・リファレンス — Docker-docs-ja 1.12.RC ドキュメント](http://docs.docker.jp/compose/compose-file.html#volumes-volume-driver)

日本語ドキュメントがありがたいです。助かります。

“`yaml:docker-compose.yml
version: ‘2’
services:
httpd:
build: ./deadwood-httpd
ports:
– “8080:80”
depends_on:
– db
environment:
– DATABASE_HOST=db
volumes:
– ./deadwood-httpd:/var/www/html
db:
build: ./deadwood-database
“`

> * [DriftwoodJP/sandbox-docker: Docker for Mac sample.](https://github.com/DriftwoodJP/sandbox-docker)

コンテナの実行を停止すると、コンテナ内の変更は消えてしまう。
データを永続化する場合には、ローカルに逃がすような対応が必要になる。

WEB+DB PRESS Vol.86
WEB+DB PRESS Vol.86

posted with amazlet at 16.06.29
結城 洋志 沖元 謙治 足永 拓郎 林 健太郎 大竹 智也 内田 誠悟 伊藤 直也 中山 裕司 hiroki.o 泉水 翔吾 佐藤 太一 高橋 俊幸 西尾 泰和 舘野 祐一 中島 聡 橋本 翔 はまちや2 竹原 麻植 泰輔
技術評論社
売り上げランキング: 237,581

[/markdown]