VirtualBoxのUpgrade(5.0.8)

表題の通り。とあるアプリケーションを試したかったのだが、VirtualBoxが5.0.0以上という制約があったので”5.0“系にアップグレードした。

以前も同じようなエントリを書いた気がするが気にしない。

■ 環境

  • Mac OSX (10.10.5)
  • VirtualBox 4.3.30 → 5.0.8

■ 確認

まずは既存のversionを確認。

virtualbox-001

4.3.30“が稼働しているようである。続いてアップデートを確認する。

virtualbox-002

アップデートが存在しない?『VirtualBoxは5.0.0以上が必要』というので実行するつもりであったのだが…。

Oracle VM VirtualBox
https://www.virtualbox.org/

これを見ると”5.0“系が存在する。メジャーバージョンのアップグレードは確認されないのか…。ダウンロードページへ。

virtualbox-003

VirtualBox 5.0.8 for OS X hosts“を選択しダウンロード。ダウンロードしたファイルは”VirtualBox-5.0.8-103449-OSX.dmg“であった。

■ インストール前に

VirtualBoxで稼働しているVMを止めておく。Vagrantで起動しているものは`global-status`で確認し、statusが”poweroff“もしくは”saved“になっているかを確認。

$ vagrant global-status
id       name      provider   state    directory
---------------------------------------------------------------------------
89f2d82  core-01   virtualbox poweroff /Users/withsin/work/coreos-vagrant
4190638  default   virtualbox poweroff /Users/withsin/work/tmp/vagrant-0625
5188e00  default   virtualbox poweroff /Users/withsin/work/tmp/vagrant-0818

The above shows information about all known Vagrant environments
on this machine. This data is cached and may not be completely
up-to-date. To interact with any of the machines, you can go to
that directory and run Vagrant, or you can use the ID directly
with Vagrant commands from any directory. For example:
"vagrant destroy 1a2b3c4d"
$

また自身の場合は、`docker-machine`でも利用しているのでそちらも確認し、起動していれば停止する。

$ docker-machine ls
NAME           ACTIVE   DRIVER       STATE     URL                         SWARM
local          *        virtualbox   Running   tcp://192.168.99.100:2376
swarm-agent             virtualbox   Stopped                               swarm-master
swarm-master            virtualbox   Stopped                               swarm-master (master)
$
$ docker-machine stop local
$
$ docker-machine ls
NAME           ACTIVE   DRIVER       STATE     URL   SWARM
local                   virtualbox   Stopped
swarm-agent             virtualbox   Stopped         swarm-master
swarm-master            virtualbox   Stopped         swarm-master (master)
$

■ インストール

本題のインストール実行。ダウンロードした”VirtualBox-5.0.8-103449-OSX.dmg“をダブルクリックする。以降はそのまま指示に従うだけ。

virtualbox-004

virtualbox-005

virtualbox-006

virtualbox-007

virtualbox-008

virtualbox-009

インストールは完了したのでversionを再度確認。

virtualbox-010

■ インストール後

VirtualBoxのUpgradeが実施できたので、`docker-machine`でも正常に稼働するかを念のため確認する。

$ docker-machine start local
Starting VM...
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.
$
$ docker-machine ls
NAME           ACTIVE   DRIVER       STATE     URL                         SWARM
local          *        virtualbox   Running   tcp://192.168.99.100:2376
swarm-agent             virtualbox   Stopped                               swarm-master
swarm-master            virtualbox   Stopped                               swarm-master (master)
$

いくつか`docker`コマンドを実行して試して問題ないのでOKである。

以上。

■ 関連

boot2dockerの代わりにdocker-machine

表題の通り。以前、どこかで『docker-machineはboot2dockerの代替ではない』といった記述を見かけた気がするのだが…。とりあえず`docker-machine`を試してみる。

■ 環境

  • boot2docker 1.8.0
  • docker-machine 0.3.1
  • Mac OSX (10.10.5)

■ boot2docker

boot2dockerでVMを起動しようとしたところ下記のようなメッセージが出力された。今回のエントリのきっかけである。

$ boot2docker start

  WARNING: The 'boot2docker' command line interface is officially deprecated.

  Please switch to Docker Machine (https://docs.docker.com/machine/) ASAP.

  Docker Toolbox (https://docker.com/toolbox) is the recommended install method.

Waiting for VM and Docker daemon to start...
................oooooooo
Started.
  :
$

`docker-machine`に移行しろ、ということか。`docker-machine`の`help`を見ると、`boot2docker`で起動しているVMに対してもアクションが起こせそうである。しかし折角なのでいちから`docker-machine`でやってみることにする。

まずはboot2dockerで起動していたVMを削除しておく。

$ boot2docker delete

■ docker-machine

そもそものイメージがあまりできていないのだが、docker-machineはboot2dockerのようにDockerサービスを稼働させるVM相当のものを起動・管理させるもの、と自身の中ではイメージしている。その為、Mac上ではVirtualBox等の”driver“を指定する。boot2dockerと同じようなものであるが、boot2dockerはVirtualBox固定であったものが、EC2やAzure、VMware、OpenStack等々を対象にすることができるようだ。

boot2dockerと実質的には変わらないかもしれないが、現状と同じVirtualBoxでやってみる。

$ docker-machine ls
NAME   ACTIVE   DRIVER   STATE   URL   SWARM
$

もちろんこの時点では対象の”machine“は存在しない。`create`で作成するのであろう。試してみる。

$ docker-machine create
  :
You must specify a machine name
$

多くのオプションが設定できるようだが、”machine name“を指定しなければならないようだ。ここでは仮なので”test“で試してみる。

$ docker-machine create test
Creating CA: /Users/withsin/.docker/machine/certs/ca.pem
Creating client certificate: /Users/withsin/.docker/machine/certs/cert.pem
Error creating machine: --url option is required when no driver is selected
You will want to check the provider to make sure the machine and associated resources were properly removed.

provider“を指定する必要があるようだが、`help`を見ると”–driver“を指定すれば良いようである。

$ docker-machine create --driver "virtualbox" test
Image cache does not exist, creating it at /Users/withsin/.docker/machine/cache...
No default boot2docker iso found locally, downloading the latest release...
Downloading https://github.com/boot2docker/boot2docker/releases/download/v1.8.1/boot2docker.iso to /Users/withsin/.docker/machine/cache/boot2docker.iso...
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env test

boot2dockerと同じISOを使用するようである。VirtualBoxでVMを稼働させ、同じようにアクセスをするようだ。

$ docker-machine env test
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/withsin/.docker/machine/machines/test"
export DOCKER_MACHINE_NAME="test"
# Run this command to configure your shell:
# eval "$(docker-machine env test)"
$
$ docker-machine ls
NAME ACTIVE DRIVER     STATE   URL                       SWARM
test        virtualbox Running tcp://192.168.99.100:2376

boot2dockerコマンドを今後は利用しないようにしよう。`boot2docker`をクライアントコマンドとして使用しないように削除してしまっても良いのかもしれない。

以上。

■ 関連

VirtualBoxのアップグレード

表題の通り。設定を見たかったので久しぶりにVirtualBoxを起動したところ、アップグレードの案内が来ていたのでアップグレードすることにした。

■ 環境

  • Mac OSX (10.9.5)
  • VirtualBox 4.3.30

■ アップグレード

VirtualBoxを起動したところ。

virtualbox-001

表示されたURLにアクセスし、”VirtualBox-4.3.30-101610-OSX.dmg“をダウンロードした。ダウンロードしたファイルをダブルクリックして実行する。

virtualbox-002

表示の通り”VirtualBox.pkg“をダブルクリック。

virtualbox-003

ちなみに、Vagrantで起動していたVMやboot2dockerを全て停止させてから行う。

virtualbox-004

インストールが開始されたら後は待つ。

virtualbox-005

特に問題無くインストール完了。

再度VirtualBoxを起動したところ、問題無いようである。

以上。

■ 関連

VagrantでVMが起動できない

VagrantでVMが新たに起動できなかったので、いくつか対処してみたメモ。

■ 環境

  • Mac OSX (10.9.5)
  • Vagrant 1.7.2
  • VirtualBox 4.3.20

■ 現象

VagrantでVMを新たに起動しようとしたところ、下記メッセージで正常に起動ができない状態になっていた。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos64'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: withsin_default_1435901964662_19271
==> default: Clearing any previously set forwarded ports...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["showvminfo", "0ccdcb97-5841-4045-8ea8-7401c074628f", "--machinereadable"]

Stderr: VBoxManage: error: The saved state file '/Users/withsin/VirtualBox VMs/withsin_default_1421832056734_96002/Snapshots/2015-01-21T10-50-44-977491000Z.sav' is invalid (VERR_FILE_NOT_FOUND). Delete the saved state and try again
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component Console, interface IConsole, callee nsISupports
VBoxManage: error: Context: "COMGETTER(SharedFolders)(ComSafeArrayAsOutParam(folders))" at line 2186 of file VBoxManageInfo.cpp

$

■ 対処

メッセージ中に出ているpathの中に日付が含まれているが随分古いな。。これは何であろうか。

とりあえずVagrantやVirtualBoxを確認する事にする。

$ vagrant version
Installed Version: 1.7.2
Latest Version: 1.7.2

You're running an up-to-date version of Vagrant!
$ 

virtualbox-update

どちらも最新版であった。

VirtualBoxのGUIを開いて気がついたのだが、不要なVMイメージが多々残っていた。不要なVMイメージを全て削除し、必要なVMイメージだけにした。

vagrant-virtualbox

この状態にて、再度、失敗していたVagrantfileでも正常に起動できるようになった。

原因はイマイチ理解できなかったが、たまにはちゃんと整理した方が良い、、のであろう。

以上。

■ 関連