docker 1.3 で MacOSX でもフツーに共有できようになった

$ docker run -v /Users/bob/myapp/src:/src [...]

これまでは, 使えなかったけどOSXでファイル共有.

Docker コンテナと Mac OSX で ファイルを共有する

Docker_1_3__signed_images__process_injection__security_options__Mac_shared_directories___Docker_Blog

バージョン1.3 で可能になってますよ.

Docker 1.3: signed images, process injection, security options, Mac shared directories | Docker Blog

手間のかかるサイズ制限で面倒だった,

各ビルド環境をMacOSXでも簡単に揃えることがほとんどすべて可能になった.

Docker の更新内容て, ユーザの要望の中で確実にまともなものを捉えてるよね.


Docker コンテナと Mac OSX で ファイルを共有する

コンテナ内のディレクトリ /root を ホストのディレクトリ /tmp にマウントする.

docker run -v /tmp:/root myImage

dotcloud - Mounting directory from parent system to container in docker - Stack Overflow

コンテナ内から見えない...

This definitely does not work on OSX using boot2docker.

Mac OSX ではできない?

Docker を boot2docker で使う場合,

ファイルシステムでいうところの

コンテナとホストの間に dockerサーバ が存在する.

はじめてのDocker_on_Mac_OS_X_|_Developers_IO

はじめてのDocker on Mac OS X | Developers.IO

なので, 共有が2段階になっている.

docker_share_osx

以下の方法を試す.

How to share folders with docker containers on OSX

1. OSX と dockerサーバ(VM) 間の共有

sshfs-fuse を使う.

Filesystem in Userspace - Browse /sshfs-fuse at SourceForge.net

まず, OSX のリモートログイン機能を開始する.

System_Preferences

Sharing

Docker サーバに入って OSXのユーザディレクトリをマウントする.

$username と $ipadress は, OSX設定で許可した それぞれ.

$ boot2docker ssh
docker@boot2docker:~$ tce-load -wi sshfs-fuse
docker@boot2docker:~$ mkdir ~/osx
docker@boot2docker:~$ sudo sshfs $username@$ipaddress:/Users/$username/ /home/docker/osx/

2. dockerサーバ(VM) とコンテナ間の共有

通常の docker オプション -v による共有しながらのイメージ起動.

$ docker run -it -v /home/docker/osx/somefolder:/opt/somefolder ubuntu bash

これで,
コンテナ内 /opt/somefolder が
OSX の /Users/$username/somefolder と
共有されている.

追記:

とかいう話もバージョンアップで解消された.

docker 1.3 で MacOSX でもフツーに共有できようになった