Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Docker Toolbox利用時においてホストのディレクトリをマウントできない

More than 1 year has passed since last update.

概要

Docker Toolbox利用時において、ホストのディレクトリをマウントできなかった。
Toolboxでは、デフォルトでマウントできるのはC:\Users 配下のみ。
-vオプションを利用して、マウントを指定をし、マウントできなくとも、エラーにはならないため、間違いに気づくのが難しい。
対応としては、C:\Users配下をマウントするか、VMに対して別途設定が必要。

発生エラー

Dドライブ配下のディレクトリをマウント指定してnginxのイメージを起動させた。
コマンド上はエラーが出ずに完了したが、マウントしたフォルダに配置したファイルは見えていなく、正常にマウントされていなかった。

$ docker run --name test-nginx -v /d/dockerTest:/usr/share/nginx/html:ro -p 8080:80 nginx
2018/12/28 01:37:03 [error] 6#6: *1 open() "/usr/share/nginx/html/index.html" failed (2: No such file or directory), client: 192.168.99.1, server: localhost, request: "GET /index.html HTTP/1.1", host: "192.168.99.100:8080"

$ docker stop test-nginx; docker rm test-nginx
test-nginx
test-nginx

$ docker run --name test-nginx -v /d/dockerTest:/usr/share/nginx/html:ro -p 8080:80 nginx ls -l /usr/share/nginx/html
total 0

エラー原因

VMの設定上、C:\Users 配下しか共有設定がされていないから。

対応策

Toolboxで構築されたVM配下の通り、VirtualBoxから見ると共有されているディレクトリは

image.png

よって、対応としては、C:\Users配下をマウントするか、VMに対して別途設定が必要。
今回は以下のように、C:\Users配下をマウントするように設定した。

$ docker run --name test-nginx -v /c/Users/dockerTest:/usr/share/nginx/html:ro -p 8080:80 nginx
192.168.99.1 - - [28/Dec/2018:02:05:23 +0000] "GET /index.html HTTP/1.1" 200 531 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36" "-"

参考

Dockerにホストのフォルダをマウントしたい!

gisuyama7
インフラエンジニア9年目。セキュスペ/AWS SAA 自社サービスでnode.js/AWSエンジニア
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away