5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Dockerでvolumeが正しくマウントされない

Posted at

問題

Windows10 & Docker for windows & WSLを使用している場合に、
dockerコマンド、または、docker-composeコマンドでvolumeを使用しようとすると、
volumeが正しくマウントされない (ディレクトリだけあってファイルがなかったりする)。

例:

└── src
    └── test.go

こんなディレクトリを作成して

docker run -v ./:/go/src/ -it golang

docker run しても

/go# ls -la ./src/
total 8
drwxrwxrwx 2 root root 4096 Apr  6 01:19 .
drwxrwxrwx 4 root root 4096 Apr  6 01:19 ..

ファイルがない

原因

WSL(Windows Subsystem for Linux)が原因でした。
WSLではCドライブが、/cではなく、/mnt/cにマウントされていることが原因で正しく動作しないようです。
(コマンドプロンプトからdockerコマンドを実行すれば正しく動作しました。)

対応策

以下の設定ファイルを作成し、Windowsのリスタートを行います。

※Windowsのバージョンによって対応方法が変わるので詳しくは以下をご確認ください。
https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly

sudo nano /etc/wsl.conf

# Now make it look like this and save the file when you're done:
[automount]
root = /
options = "metadata"

まとめ

上記の設定でdocker-composeでは、問題なく動作するようになりました。
dockerコマンドでは、相対パスでは相変わらず正しくマウントできませんでしたが、
絶対パスであれば正しくマウントできました。

5
4
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
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?