takaya030の備忘録

PHP、Laravel、Docker などの話がメインです

Windows の Docker 環境を Docker Toolbox を使わずバージョンアップする

以前 Windows 上に構築した Docker 環境Docker Toolbox (Docker インストーラ) を使わずに最新バージョンアップしたときの手順メモ。

バージョンアップ前の Docker 環境

  • VirtualBox 4.3.28
  • docker 1.8.1
  • docker-machine 0.4.1

最新の Docker 環境

2016年3月19日現在の最新バージョンです。

  • VirtualBox 5.0.16
  • docker 1.10.3
  • docker-machine 0.6.0

イメージ、コンテナのバックアップ

docker-machine v0.4.1 で作成したホストマシンは v0.6.0 では動作しないため、新しい環境でも使用したいイメージやコンテナはあらかじめバックアップしておきます。
イメージのエクスポート

$ docker save centos > centos.image.tar

コンテナのエクスポート

$ docker export busybox_1 > busybox_1.container.tar

VirtualBox のバージョンアップ

以下のサイトから最新の WindowsVirtualBox をダウンロードしてインストールします。
上書きインストールで問題ありません。

docker-machine v0.5.2 のインストール

docker-machine v0.5.2 の各種仮想マシンドライバが必要になるため、v0.6.0 の前にインストールします。

$ curl -L https://github.com/docker/machine/releases/download/v0.5.2/docker-machine_windows-amd64.zip > machine.zip
$ unzip machine.zip
$ rm machine.zip
$ mv -f docker-machine* /bin

Dokcer 関連コマンドのバージョンアップ

msysgit のシェル上で以下のコマンドを入力します。

$ curl -L https://get.docker.com/builds/Windows/x86_64/docker-1.10.3.exe > /bin/docker
$ curl -L https://github.com/docker/machine/releases/download/v0.6.0/docker-machine-Windows-x86_64.exe > /bin/docker-machine

動作確認

$ docker -v
Docker version 1.10.3, build 20f81dd

$ docker-machine -v
docker-machine version 0.6.0, build e27fb87

ホストマシンの作成

docker-machine v0.6.0 でホストマシンを作成します。

$ docker-machine create --driver virtualbox --virtualbox-memory 2048 --virtualbox-disk-size 40000 dev2

ホストマシンの確認

$ docker-macine ls
NAME   ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKR    ERRORS
dev    -        virtualbox   Stopped                                       Unknwn
dev2   *        virtualbox   Running   tcp://192.168.99.100:2376           v1.10.3

docker-machine ssh でログイン

$ docker-machine ssh dev2
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.10.3, build master : 625117e - Thu Mar 10 22:09:02 UTC 2016
Docker version 1.10.3, build 20f81dd

イメージ、コンテナのインポート

新しく作成したホストマシンにイメージ、コンテナをインポートします。
イメージのインポート

$ docker load < centos.image.tar

コンテナのインポート

$ cat busybox_1.container.tar | docker import - busybox_1:latest