Satoryu's Diary

Rubyが好きなプログラマーの日記。日々の生活、開発に関するメモとか考えとか。


2014年05月30日

_ boot2docker でISOイメージが落とせなかった時の対処法

最近巷で人気のDockerを試してみようとチュートリアルに従ってやってみたのだが、boot2docker init をしてみたところ、

$ boot2docker init
[2014-05-30 00:00:35] Creating VM boot2docker-vm
Virtual machine 'boot2docker-vm' is created and registered.
UUID: 324d6ec3-10c6-475e-88c7-8b29d4d0dacc
Settings file: '/Users/tatsuya.b.sato/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox'
[2014-05-30 00:00:35] Apply interim patch to VM boot2docker-vm (https://www.virtualbox.org/ticket/12748)
[2014-05-30 00:00:35] Setting VM settings
[2014-05-30 00:00:35] Setting VM networking
[2014-05-30 00:00:36] boot2docker.iso not found.
[2014-05-30 00:00:38] Latest version is v0.9.1, downloading...
curl: (3) [globbing] error: bad range specification after pos 70
[2014-05-30 00:00:38] Done
[2014-05-30 00:00:38] Setting VM disks
[2014-05-30 00:00:38] Creating 40000 Meg hard drive...
Converting from raw image file="stdin" to file="/Users/tatsuya.b.sato/.boot2docker/boot2docker-vm.vmdk"...
Creating dynamic image with size 41943040000 bytes (40000MB)...
VBoxManage: error: Could not find file for the medium '/Users/tatsuya.b.sato/.boot2docker/boot2docker.iso' (VERR_FILE_NOT_FOUND)
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component Medium, interface IMedium, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 178 of file VBoxManageDisk.cpp
VBoxManage: error: Invalid UUID or filename "/Users/tatsuya.b.sato/.boot2docker/boot2docker.iso"
[2014-05-30 00:00:38] Done.
[2014-05-30 00:00:38] You can now type boot2docker up and wait for the VM to start.

となっていて、boot2docker のソースを見てみたところ、curlでISOファイルを落とすのに何故か失敗していた。

ということで、手動で対応してみた。

まずはISOファイルを落としてくる。

curl でも何でもいいので、boot2docker.iso をダウンロードする*1

$ curl -L -o ./boot2docker.iso https://github.com/boot2docker/boot2docker/releases/download/v0.9.1/boot2docker.iso 

落としたISOイメージを移動

boot2docker は初期化の際に、$HOME/.boot2docker を作成しており、その下にISOイメージに置こうとする。なので、それを代わりにやってあげる。

$ mv ./boot2docker.iso ~/.boot2docker/

boot2docker init 、ふたたび

後は boot2docker init を再度実行する。

$ boot2docker init  
[2014-05-30 00:46:41] Creating VM boot2docker-vm
Virtual machine 'boot2docker-vm' is created and registered.
UUID: 9cddaa86-9f0b-4e06-9165-778945a7cefd
Settings file: '/Users/tatsuya.b.sato/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox'
[2014-05-30 00:46:41] Apply interim patch to VM boot2docker-vm (https://www.virtualbox.org/ticket/12748)
[2014-05-30 00:46:41] Setting VM settings
[2014-05-30 00:46:41] Setting VM networking
[2014-05-30 00:46:42] Setting VM disks
[2014-05-30 00:46:42] Creating 40000 Meg hard drive...
Converting from raw image file="stdin" to file="/Users/tatsuya.b.sato/.boot2docker/boot2docker-vm.vmdk"...
Creating dynamic image with size 41943040000 bytes (40000MB)...
[2014-05-30 00:46:42] Done.
[2014-05-30 00:46:42] You can now type boot2docker up and wait for the VM to start.
[tatsuya.b.sato:~] boot2docker up  
[2014-05-30 00:46:50] Starting boot2docker-vm...
[2014-05-30 00:47:23] Started.

To connect the docker client to the Docker daemon, please set:
export DOCKER_HOST=tcp://localhost:4243

エラーがでなくなり、VirtualBox上に新しいVMが出来上がりました。

Tags: Docker

*1 これを書いている時点での最新のバージョンは0.9.1。最新のバージョンについては、https://github.com/boot2docker/boot2docker/releases で確認。


最近の投稿

翻訳しました(ちょっとだけ)

follow us in feedly