VirtualBox, Vagrant, Container Linux を使います
概要
julia-lang のdockerイメージを動かしたいので
windows 機へ docker 実行環境を作りたい
- VirtualBox:仮想化ソフトウェア
- Vagrant:仮想化環境を操作するためのツール。
- Container Linux:Docker実行用に特化した Linux. 内容は固定されていて, update は
vagrant box update
で行う.以前はCoreOSという名称.
環境構築
- windows 10 pro で環境を構築しました
- Downloads_Old_Builds_5.1 – Oracle VM VirtualBoxから次の二つの最新版をダウンロードし、順にインストールします
- VirtualBox 5.1.30 platform packages
- VirtualBox 5.1.30 Oracle VM VirtualBox Extension Pack
- (VirtualBox 5.2.0 は windows版 vagrant 2.0.0 では対応していませんでした. 2017/10/20)
- Download - Vagrant by HashiCorpから最新版をダウンロードしインストールします
- Vagrant 2.0.0 (windows 64bit版)
- インストール後、再起動を要求されます
- container linux 用のディレクトリを用意
mkdir C:\Users\user\projects\vms
- container linux の Vagrantfile を 配備
(powershell
での作業)
cd C:\Users\user\projects\vms
# git を使っていれば
git clone https://github.com/coreos/coreos-vagrant
# zip でダウンロードして展開
Invoke-WebRequest -Uri "https://github.com/coreos/coreos-vagrant/archive/master.zip" -OutFile ./coreos.zip
Expand-Archive ./coreos.zip -DestinationPath ./
# ディレクトリ移動
cd .\coreos-vagrant-master\
# ゲストOS作成
vagrant up
- コマンド実行ログ例
2017/10/20時点のcoreosバージョンはv1562.1.0でした.
更新があればvagrant box update
でアップデートできます
PS C:\Users\user\projects\vms\coreos-vagrant-master> vagrant up
Installing plugins: vagrant-ignition
Installing the 'vagrant-ignition' plugin. This can take a few minutes...
Fetching: vagrant-share-1.1.9.gem (100%)
Fetching: vagrant-ignition-0.0.3.gem (100%)
Installed the plugin 'vagrant-ignition (0.0.3)'!
Bringing machine 'core-01' up with 'virtualbox' provider...
==> core-01: Box 'coreos-alpha' could not be found. Attempting to find and install...
core-01: Box Provider: virtualbox
core-01: Box Version: >= 0
==> core-01: Loading metadata for box 'https://alpha.release.core-os.net/amd64-usr/current/coreos_production_vagrant_virtualbox.json'
core-01: URL: https://alpha.release.core-os.net/amd64-usr/current/coreos_production_vagrant_virtualbox.json
==> core-01: Adding box 'coreos-alpha' (v1562.1.0) for provider: virtualbox
core-01: Downloading: https://alpha.release.core-os.net/amd64-usr/1562.1.0/coreos_production_vagrant_virtualbox.box
core-01: Progress: 100% (Rate: 20.8M/s, Estimated time remaining: --:--:--)
core-01: Calculating and comparing box checksum...
==> core-01: Successfully added box 'coreos-alpha' (v1562.1.0) for 'virtualbox'!
==> core-01: Importing base box 'coreos-alpha'...
==> core-01: Configuring Ignition Config Drive
==> core-01: Matching MAC address for NAT networking...
==> core-01: Checking if box 'coreos-alpha' is up to date...
==> core-01: Setting the name of the VM: coreos-vagrant-master_core-01_1508432850002_92455
==> core-01: Clearing any previously set network interfaces...
==> core-01: Preparing network interfaces based on configuration...
core-01: Adapter 1: nat
core-01: Adapter 2: hostonly
==> core-01: Forwarding ports...
core-01: 22 (guest) => 2222 (host) (adapter 1)
==> core-01: Running 'pre-boot' VM customizations...
==> core-01: Booting VM...
==> core-01: Waiting for machine to boot. This may take a few minutes...
core-01: SSH address: 127.0.0.1:2222
core-01: SSH username: core
core-01: SSH auth method: private key
==> core-01: Machine booted and ready!
==> core-01: Setting hostname...
==> core-01: Configuring and enabling network interfaces...
- vagrant 初回起動時は ruby のインストールダイアログが現れます
vagrant 操作
- 起動
vagrant up
- 停止
vagratn halt
- ssh接続
vagrant ssh
- virtualbox host 側と guest OS についてのポートフォーワーディングなどの設定は、Vagrantfile に記述します
Vagrantfile 設定
- coreos で実行する jupyter-notebook にホスト側から接続するためポートフォワードを設定する
# Vagrantfile 35行目を変更
$forworded_ports = {8888=>8888}
- notepad で編集すると、エンコーディングや、ファイルフォーマットが崩れてしまうため、変更済みのVagrantfile をダウンロードして上書きいただいても.
Invoke-WebRequest -Uri "https://gist.githubusercontent.com/ysaito8015/fc046e45bffa9d0c996544bc6a07abba/raw/ceac932cda2a3b79bb929afff9db55b51ec555e5/Vagrantfile" -OutFile .\Vagrantfile
docker 実行
PS> vagrant ssh
PS> docker --version
Docker version 17.09.0-ce, build afdb6d4
参考にさせていただいた記事
Windows上にDocker環境を作る (VirtualBox + Vagrant + Container Linux)