6
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 for Macでコンテナとのボリュームマウントに苦労した話

Posted at

##【事象】
私用のMacでDockerコンテナをいじっていた時、Tomcatのコンテナのログをホスト側に吐かせたくなり、
ホストとコンテナ間で共有ディレクトリを設定しようとしたら、めっちゃ怒られて辛かったというお話。

■激おこメッセージ

$ sudo docker run -d -p 18080:8080 -v /work/tomcat-container/logs:/share/logs --name tomcat1 tomcat:latest /sbin/init
04d63c0ab435ddf746fd239e162d48d55055cba9378a0d6e247580de19039028
docker: Error response from daemon: Mounts denied: 
The path /work/tomcat-container/logs
is 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.

【やりたきこと】
ホスト側のボリューム /work/tomcat-container/log にログが流れるようにしてあげたい。
あわよくば、お叱り頂いた理由等も知りたく...。

【Let's 解析】

  • docker run時のファイルパスはどちらも間違っていない
  • ディレクトリ権限でも問題ない
  • メッセージを見ると、dockerのアプリがそもそもダメって言っていた。
     
    ##■ありがたきメッセージ
    メッセージをもう一度読むともう答えが書かれていました。
    なんとDockerアプリから環境設定で設定が必要なご様子です。
You can configure shared paths from Docker -> Preferences... -> File Sharing.
See https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.

【詳細】
メッセージに従い一度きっちりドキュメントを拝見させて頂くと...?
https://docs.docker.com/docker-for-mac/osxfs/#namespaces

The user’s ~/Desktop/ directory is now visible in the container as a directory under /.

コンテナ側から見えてなかった理由がわかりましたね。
僕の作ったボリューム (/work/tomcat-container/logs) は、「/」始まりでした。
そりゃコンテナ側からは見れなくて当然な訳で御座います。

Docker for macのアプリで許可してあげたら無事、共有ディレクトリを設定できました〜。
[タブ:File Sharing]で、共有ディレクトリを設定可能
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f35382f39396266623338362d396462632d326361622d343335612d3365643039323935313861362e706e67.png

#【小ネタ】
Docker for Macのアプリに、許可するファイルパスを指定してあげれば余裕でOKな話でしたが、
僕は端末を汚したく無くて、terminalでいつも /work に色々sandboxを作って操作していました。

事件が起きたのは今回、/work のPATHを許可設定する時でした。
「/work って、Macでのファイルパスってどこなんだろう...?」
「選択できる対象にホストが...ない!?」

工エエエエエエェェェェェェ(゚Д゚)ェェェェェェエエエエエエ工工工

terminalにてhostnameをポチポチ...。
 →Docker for Macのアプリを再度見る。
  選択できる対象にホストは無いまま。

      お通夜モード

「 /workは /work だったァーーーーー!!!!」

工エエエエエエェェェェェェ(゚Д゚)ェェェェェェエエエエエエ工工工
nukesaku.jpg

普段、仕事の端末(Windows)上のマシンで作業していたからこそ起きた悲劇...。

6
4
1

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
6
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?