[Docker] ローカルのファイルを docker のコンテナにマウントする
マウントするには docker-compose.yml に volumes を設定する。
前回、Dockerfile 内で ADD
を利用したが、文字通りファイルをコンテナに追加(コピー)する命令。
開発での利用を想定すると、マウントが必要そう。
ドキュメントを読むと Sharing the OS X file system with Docker containers という記述がある。
% 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開発日誌
MacのファイルシステムはDockerホストにマウントされており、ファイルシステム全体が”/Mac”として参照できます。 その他、”/Users”, “/var/log”, “/Users”, “/Volumes”, “/tmp”, “/private”もマウントされています。
-v
オプションで deadwood-httpd
ディレクトリを コンテナの /var/www/html/
にマウントする。
% 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
ローカルでファイルを作成する。
% touch deadwood-httpd/foo.html
% ls deadwood-httpd
Dockerfile foo.html index.html
ファイルの追加を確認する。
[root@c139d1bf89b4 /]# ls var/www/html/
Dockerfile foo.html index.html
docker-compose.yml
docker-compose.yml に volumes
を設定する。
日本語ドキュメントがありがたいです。助かります。
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
コンテナの実行を停止すると、コンテナ内の変更は消えてしまう。
データを永続化する場合には、ローカルに逃がすような対応が必要になる。
WEB+DB PRESS Vol.86
posted with amazlet at 16.06.29
結城 洋志 沖元 謙治 足永 拓郎 林 健太郎 大竹 智也 内田 誠悟 伊藤 直也 中山 裕司 hiroki.o 泉水 翔吾 佐藤 太一 高橋 俊幸 西尾 泰和 舘野 祐一 中島 聡 橋本 翔 はまちや2 竹原 麻植 泰輔
技術評論社
売り上げランキング: 237,581
技術評論社
売り上げランキング: 237,581