2014/05/04

Parallels + Vagrant上でDockerを動かす

VagrantにParallels向けのboot2dockerのBoxがあり、Parallelsでポートフォワーディングができるようなので、このBoxを使ってdockerを実行してみました。

イメージとしては、コマンドラインユーティリティboot2dockerの代わりに、vagrantでboot2dockerを起動、終了させるようになります。

Vagrantでのboot2dockerの起動

Vagrant Parallels Providerを導入後に次のようにするだけです。

$ vagrant plugin install vagrant-parallels  # プラグイン未導入なら
$ vagrant init yungsang/boot2docker
$ vagrant up --provider=parallels

Parallelsでのポートフォワーディング設定

boot2dockerとdockerコマンドはポート4243のtcpで通信しているので、次のような手順でParallelsにポートフォワーディング設定をします。

まず、boot2dockerにログインしてIPアドレスを確認します。

$ vagrant ssh
$ ifconfig

そうしたら、Parallelsを起動して、Preferencesを開いて、AdvancedからNetwork: Change settings…をクリック。

Port Forwarding rulesに次のような設定を追加します。Virtual Machine’s IP Addressは先ほど見たアドレスを指定します。

設定ダイアログはこんな感じにします。

Docker実行

あとは、以前の記事「MacでDocker 0.8.0を利用してみる」と同じようにdockerでいろいろできるようになっています。

$ export DOCKER_HOST=tcp://127.0.0.1:4243
$ docker search tiny
$ docker pull jprjr/docker-tinyfs
$ docker run jprjr/docker-tinyfs uname -a
$ docker run -t -i jprjr/docker-tinyfs /bin/sh

関連リンク

2 件のコメント:

  1. 環境設定をいじる必要が無いパターンを思いつきました。

    $ vagrant plugin install vagrant-parallels
    $ vagrant init parallels/boot2docker
    $ vagrant up --provider parallels
    $ export DOCKER_HOST="tcp://`vagrant ssh-config | sed -n "s/[ ]*HostName[ ]*//gp"`:4243"
    $ docker version

    返信削除
  2. コメントありがとうございます。

    ゲストOSのIPが頻繁に変わるような場合には、
    そちらのほうが汎用的でよさそうですね。

    返信削除

注: コメントを投稿できるのは、このブログのメンバーだけです。