Docker(Docker for Mac)にファイルをマウント出来なくなったときの解決法を紹介します。

目次

前提条件

使用しているバージョン

$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.7
BuildVersion: 19H1217

$ docker --version
Docker version 20.10.6, build 370c289

$ docker-compose --version
docker-compose version 1.26.0, build d4451659

Docker Volumeの使用方法

Docker Volumeの使用方法については、以下のドキュメントにまとまっています。

ボリュームの利用 | Docker ドキュメント

ヘルプは以下のようになっています。

$ docker run --help

# snip...

    --mount mount                    Attach a filesystem mount to the container

-v, --volume list                    Bind mount a volume
      --volume-driver string           Optional volume driver for the container
      --volumes-from list              Mount volumes from the specified container(s)

マウントに失敗する例

Mac側の/var/tmpディレクトリを、Docker側の/pwdマウントしてみます。

$ pwd
/var/tmp
$ ls -l
total 0
drwxr-xr-x  2 root      wheel   64  6 10 23:12 KindlePreviewerUpdater/
drwxr-xr-x  4 root      wheel  128  5 28 09:33 com.paceap.eden.licensed/
srw-r--r--  1 root  wheel    0  5 28 09:33 filesystemui.socket=
$ docker container run --rm -it -v $PWD:/pwd:rw alpine
/ # ls /pwd/
/ #

Docker側の/pwdディレクトリにファイルがなく、マウントができておりません。

解決法

Docker for Macの設定を開き、「Preference > Resources > FILE SHARING」から/var/tmpを追加しました。

https://imgur.com/m24kFzQ.png

Docker for Macでは、上記で設定したディレクトリしかマウントする事ができません。