LoginSignup
8

More than 5 years have passed since last update.

posted at

Docker for Mac でファイル共有を利用する

 Docker for Mac 17.03 と Kitematic (Beta) 0.13 を使用する上で、GUIだけでは共有フォルダを設定できなかったようなので、そのときの設定の手順を備忘として記録します。ここでは、 Oracle VM VirtualBox ではなく、 HyperKit を使用している場合を想定しています。

 この記事で説明しているのは、Dockerの基本的なコマンドをターミナルで実行することだけです。Dockerイメージは、既に取得済みであることを前提としています。

 まずは、コンテナにマウントしたいホストOS(macOS)側のディレクトリが、Dockerデーモンにファイル共有として設定されていることを確認します。ファイル共有の設定は、 Docker メニュー > Preferences > File Sharing から確認できます。

/Users, /Volumes, /tmp, /private の4つのディレクトリがファイル共有として設定されています

 次に、どのイメージからコンテナを起動するのかを確認するために、ホストOSのターミナルで docker images を実行して、既に取得済みであるDockerイメージの一覧を取得します。

Dockerイメージの一覧を得る
$ docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE

jenkins                       latest              8d383af9763f        8 days ago          713 MB
ghost                         latest              f7f74cd3ef27        9 days ago          331 MB
nginx                         latest              6b914bbcb89e        10 days ago         182 MB
momoto/workspace              latest              b7edec7e4c13        13 months ago       469 MB
kitematic/hello-world-nginx   latest              03b4557ad7b9        21 months ago       7.91 MB

 ここで確認できたDockerイメージをもとにコンテナを起動します。コンテナの起動は docker run のコマンドを使って行いますが、このときに実行するコマンドのオプションに、ホストOSのどのディレクトリを、コンテナ内のどのディレクトリへとマウントさせるのか、を指定します。

Dockerイメージからコンテナを起動する
$ docker run -d -p 3000:80 -v ~/Workspace:/var/shared --privileged --name workspace momoto/workspace:latest /sbin/init

 ここで docker run のオプションを網羅的に説明することはしませんが、上の例で使用しているオプションには、次のような意味があります。

  • -d コンテナをデタッチモードで起動します。デアタッチモードでない場合、フォアグラウンドモードになります。
  • -p hostPort:containerPortという形式で、ホストからコンテナへポートフォワードするポート番号を指定します。共有フォルダとは直接、関係ありません。
  • -v host-src:container-destという形式で、共有フォルダを指定します。
  • --privileged Privilegedモードで起動します。コンテナ内からホストのすべてのデバイスにアクセスできるようになります。コンテナでsystemctlを使用したいときに必要です。
  • --name 任意のコンテナ名を指定します。

 docker run が正常に実行されると、コンテナのプロセスが起動されて、GUIのKitematicの画面からコンテナを確認できるようになります。

コンテナの/var/sharedに、ホストOSの~/Workspaceがマウントされました

 Kitematic の画面でも共有フォルダが設定されていることを確認できます。

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
What you can do with signing up
8