an odd fellow

仕事のメモ

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

逆に↑のようにしたければ以下のようにコンテナのパスの方に書くしか無い。

-v /app/build:/usr/share/nginx/html/build

またコンテナのパスのほうに存在しないディレクトリを書いても勝手に作ってくれる。