dockerの-vオプション
なんかいつも忘れるからメモ
書き方
docker -v ホストのディレクトリ:コンテナのディレクトリ image名
カレントディレクトリをマウントしたいとき
docker -v $(pwd):/path/to/directory image
覚え方
前と後ろのどっちがホストのディレクトリだっけ?っていつも悩んでしまう。
Dockerは基本的に基本的にホスト:コンテナの順で書く。だから大抵source => destinationの順になってる。
-v $(pwd):/path/to/directory
だったらホストのカレントディレクトリをコンテナの /path/to/directory
にマウントする。
portもそう。-p 80:8080
だったらホストの80番をコンテナの8080にフォワードする。
展開のされかた
以下のようなディレクトリ構造がホストに構築されているとする
- /app/build/
- index.html
- style.css
で、-v /app/build:/usr/share/nginx/html
と書くとコンテナでは以下のように展開される。
- /usr/share/nginx/html/
- index.html
- style.css
以下のようにはならない。
- /usr/share/nginx/html/
- build/
- index.html
- style.css
- build/
逆に↑のようにしたければ以下のようにコンテナのパスの方に書くしか無い。
-v /app/build:/usr/share/nginx/html/build
またコンテナのパスのほうに存在しないディレクトリを書いても勝手に作ってくれる。