Mac版のDockerでError response from daemon: Mounts deniedエラーが発生した際の修正方法

2019年5月4日Docker,Mac,TECHNOLOGY,仮想化

Mac版のDockerで-vオプションを使い、ホスト側のディレクトリをコンテナ内で使おうとした時、以下のようなエラーが表示されることがあります。

docker: Error response from daemon: Mounts denied: The path /var/jenkins_docker_datais not shared from OS X and is not known to Docker.You can configure shared paths from Docker -> Preferences... -> File Sharing.See https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info..

そのままエラーの内容を見れば直し方がわかると思いますが、一応メモで残しておきます。

 

追記 2019/05/04 : Mac OSにて/var配下のサブディレクトリを以下の工程を行って-vオプションで使えるようにしても読み込み専用になってしまい書き込めない場合があります。
chmod 777 /var/jenkins_docker_dataなどを行うことによってコンテナ内から書き込みできるようになりますがあまりオススメじゃないです。
/tmp/home配下の領域などを使ってください。

 

さらに追記 2019/05/04 : どうやら実行時の権限はDockerを使用しているユーザーにあるようです。そのためjenkinsコンテナなどでchown -R 1000:1000 /var/jenkins_docker_dataなどを行っても無駄です。
Mac OSのユーザー名とstaffグループでchown -Rを行ってみてください。
例 : chown -R fl1ne:staff /var/jenkins_docker_data

これによってJenkinsコンテナを動かそうとした際にでる以下のエラーメッセージが解決できます。

touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission deniedCan not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

chmod 777を行ってしまった場合はchmod 755を行っておくことを推奨します。

後、/varそのものは以下の手順で設定できません。
必ず/var配下のサブディレクトリを指定してください。

 

まずメニューバーのDockerアイコンをクリックし、Preferences...をクリックします。

 

表示されたウィンドウのFile Sharingタブ内に使用したいディレクトリを追加します。

今回は試しに/var/jenkins_docker_dataを追加します。

 

追加できました。

Apply & RestartボタンをクリックしてDockerを再起動させます。

 

注意! : Mac OSのバージョンによっては自動的にパスが/private/var/jenkins_docker_dataに変更されることがあります。

この場合/privateはもうすでに追加されているのでエラーが出ます。

回避方法は2種類あって、Dockerの-vオプションでパスを指定する際に明示的に/private/var/jenkins_docker_dataを指定する方法とDockerの設定ウィンドウ内のパスを後から/var/jenkins_docker_dataに変更するパターンがあります。

今回はDockerの設定パスを変更する方式でいきました。

 

コンテナ・ベース・オーケストレーション Docker/Kubernetesで作るクラウド時代のシステム基盤

コンテナ・ベース・オーケストレーション Docker/Kubernetesで作るクラウド時代のシステム基盤

橋本 直哉, 須江 信洋, 前佛 雅人, 境川 章一郎, 佐藤 聖規, 山田 修司, 青山 尚暉, 市川 豊, 平岡 大祐, 福田 潔, 矢野 哲朗
4,000円(10/24 19:02時点)
発売日: 2018/03/15
Amazonの情報を掲載しています
Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門

山田 明憲
3,718円(10/24 19:02時点)
発売日: 2018/08/25
Amazonの情報を掲載しています
[改訂第3版]Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

[改訂第3版]Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

佐藤 聖規, 和田 貴久, 新井 雄介, 米沢 弘樹, 山岸 啓, 岩成 祐樹
3,278円(10/24 19:02時点)
発売日: 2017/05/24
Amazonの情報を掲載しています
Jenkins

Jenkins

John Ferguson Smart
3,960円(10/24 19:02時点)
発売日: 2012/02/22
Amazonの情報を掲載しています