Windowsな人がDockerを体験するのに最適な「Boot2Docker」
今話題の Docker や CoreOS について、僕が自分なりに調べてわかったことをまとめておきます。
Windows ユーザで Linux に慣れていない人でもわかるように、丁寧に説明しているつもりです。
おことわり
僕自身は業務で Docker を扱っているわけでもなくインフラエンジニアでもありません。なんか流行っているから自分なりに調べておくかーといった感じなので、参考程度に留めておいてくださいね。
また、本記事では Windows をメインに説明していますが、もちろん Mac でも同様です。
Boot2Dockerとは
Boot2Docker is a lightweight Linux distribution made specifically to run Docker containers.
- http://boot2docker.io
- Docker に特化した軽量 Linux
- ISOディスクイメージが配布されている
Docker for Windows
- Windows 上でDockerを扱うためのツール、という位置づけだと思う
docker-install.exe
をダウンロードしてインストール- Releases · boot2docker/windows-installer
- will install VirtualBox, MSYS-git, the boot2docker Linux ISO, and the Boot2Docker management tool.
- VirtualBox など、Windows 上で動作させるための最小限のもろもろを入れてくれます。
Dockerを試す環境について
誤解を恐れずに言うと以下は大体同じ(Docker視点)
※あくまで Windows 上でDockerを試すための環境の話です
CoreOS
Dockerを扱うときの流れ
- イメージを入手する
- イメージをつくる
- 入手したイメージの加工
- 加工したイメージの登録
- イメージを利用する
- コンテナの生成
Dockerを体験する
はじめての人はまず始めにドットインストールのレッスンを参照して雰囲気を掴むのがよいと思います。
Boot2Docker を起動
- v1.2.0
以降では、より具体的な説明になるよう、僕の username syon
を使って書いています。適宜読み替えてください。
Dockerイメージの作成
これから扱うイメージ用の作業ディレクトリを作ります。
$ mkdir syon-golang $ cd syon-golang
Dockerfile を用意します。
$ vi Dockerfile
FROM ubuntu RUN sed -i s/archive.ubuntu.com/ftp.jaist.ac.jp/ /etc/apt/sources.list RUN apt-get update RUN apt-get install -qq -y --force-yes golang
慣れない人にはvi
の操作は謎だと思うので、手順を説明します。
- 上の4行をコピー
- Boot2Docker をアクティブにしてキーボードの
i
を押す → 左下にI
が表示される - ウィンドウ左上のアイコンから 編集(E) → 貼り付け(P)
- キーボード
Esc
:
w
q
Enter
Ctrl-L
でコンソールのクリア
次に、Dockerfile をもとにイメージを作成します。末尾のドットを忘れずに。
$ docker build -t syon/golang .
docker@boot2docker:~/syon-golang$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE syon/golang latest 3f7243c3f06b 30 seconds ago 400.1 MB
イメージの登録
作成したイメージを自分の Docker Hub リポジトリに push します。
$ docker push syon/golang
※push には Docker Hub へのサインアップが必要です。
※お試しで特に共有や別環境にて再利用の必要がなければこの手順は不要です。
コンテナの生成
docker@boot2docker:~/syon-golang$ docker run syon/golang go version go version go1.2.1 linux/amd64
コンテナの標準出力が返ってきました。
ここまでが Docker の利用の大まかな流れです。
おわりに
本記事では、Boot2Docker を使って Docker をただ単に「体験する」ことを説明しました。
Docker や CoreOS については最先端の技術だと思いますので、まだまだそういうのを追っかけられるすごい人たちが書く難しい記事がほとんどだと感じています。それらを読んでも技術的な側面ばかりで、これが実際の業務や生活の中で具体的にどう便利なのかがわからないんですよね。それでもこの技術が素晴らしいということはなんとなくわかるので、少しずつ理解を深めて活用していけるようになれればなぁと思います。