Docker でボリュームを相対パスで指定する

Docker でボリュームをマウントする際は絶対パスで指定します。 これを相対パスで指定するとエラーになってしまいます。

1
2
3
# docker run -d -p 80:80 --name httpd -v ./:/usr/local/apache2/htdocs httpd
docker: Error response from daemon: create ./: "./" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.
See 'docker run --help'.

これを回避するには $(pwd) 環境変数などを用いて相対パスを表現します。 この方法であればエラーにならず、実行することが出来ます。

1
docker run -d -p 80:80 --name httpd -v $(pwd):/usr/local/apache2/htdocs httpd

もしくは docker-compose を利用します。