LoginSignup
2
1

More than 1 year has passed since last update.

docker runでvolumeにカレントディレクトリを割り当てる記述法(Git Bash for Windows)

Last updated at Posted at 2021-08-09

※2021/08/10 Dockerfileでvolumeした場合も追記

Docker初心者です。コンソールはGit Bash for Windowsを使用しています。
Dockerでvolumeマウントをするときにエラーが出過ぎて困ったので、どの表記法であればエラーが出ないか自身の備忘録としてまとめます。ちなみに理由はよく分かっていません。。。

ホストPC側(自分のパソコン側)のディレクトリの階層構造や名前は適当に付けているので気にしないでください。
httpdのDockerイメージを使用しているため、Docker側のvolume場所は/usr/local/apache2/htdocsとなっています。こちらは使用するイメージによって変わってくるので(とはいえどこでもいい?この辺よく分かってないです)

エラーが出ない記述法

絶対パス

$ docker run -v C:/User/hoge/dir:/usr/local/apache2/htdocs httpd
$ docker run -v C:\\User\\hoge\\dir:/usr/local/apache2/htdocs httpd
$ docker run -v //C/User/hoge/dir:/usr/local/apache2/htdocs httpd
$ docker run -v //C\\User\\hoge\\dir:/usr/local/apache2/htdocs httpd
  • Cは大文字でも小文字でもOK。
  • /(スラッシュ)は(バックスラッシュ)でも代用可能。ただし、バックスラッシュが一つだとただのエスケープと認識されるので、2回記述する必要あり。

相対パス

$ docker run -v /$(pwd):/usr/local/apache2/htdocs httpd
  • pwdは大文字でも小文字でもOK
  • こっちは(バックスラッシュ)はだめ

エラーの出る記述法

組み合わせは無限なので、いくつかのみ紹介します。

絶対パス

$ docker run -v /C/User/hoge/dir:/usr/local/apache2/htdocs httpd ←スラッシュ一つ

相対パス

$ docker run -v .:/usr/local/apache2/htdocs httpd
$ docker run -v /($pwd):/usr/local/apache2/htdocs httpd
$ docker run -v $(pwd):/usr/local/apache2/htdocs httpd
$ docker run -v \\$(pwd):/usr/local/apache2/htdocs httpd
$ docker run -v ${pwd}:/usr/local/apache2/htdocs httpd
$ docker run -v %cd%:/usr/local/apache2/htdocs httpd

Dockerfileからrunした場合

さっきは上手くいっていたパスではエラーが出ました。

エラーの出る記述法

$ docker build -t ex22_original /$(pwd)
$ docker build -t ex22_original /$(pwd)/

エラーの出ない記述法

$ docker build -t ex22_original $(pwd)
$ docker build -t ex22_original .

絶対パスは何度試してもダメなので、正解が分かったらまた書き足します。

参考サイト

docker run の時 volume が割り当てられない(Git For Windows使用)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1