読者です 読者をやめる 読者になる 読者になる

Windowsな人がDockerを体験するのに最適な「Boot2Docker」

Docker

Boot2Docker

今話題の Docker や CoreOS について、僕が自分なりに調べてわかったことをまとめておきます。
Windows ユーザで Linux に慣れていない人でもわかるように、丁寧に説明しているつもりです。

おことわり

僕自身は業務で Docker を扱っているわけでもなくインフラエンジニアでもありません。なんか流行っているから自分なりに調べておくかーといった感じなので、参考程度に留めておいてくださいね。
また、本記事では Windows をメインに説明していますが、もちろん Mac でも同様です。

Boot2Dockerとは

Boot2Docker is a lightweight Linux distribution made specifically to run Docker containers.

Docker for Windows

f:id:syonx:20140921093633p:plain

Dockerを試す環境について

誤解を恐れずに言うと以下は大体同じ(Docker視点)

※あくまで Windows 上でDockerを試すための環境の話です

CoreOS

  • Docker の利用という目的に対して Ubuntu は高機能すぎる
    • Ubuntu は Docker の土台としてではなくゲストOSとして利用
  • CoreOS は Docker に特化した軽量OS
  • CoreOS には最初から Docker が入っている
  • だけどまだまだ開発途上
CoreOS

Dockerを扱うときの流れ

  • イメージを入手する
  • イメージをつくる
    • 入手したイメージの加工
    • 加工したイメージの登録
  • イメージを利用する
    • コンテナの生成

f:id:syonx:20140921031429p:plain

Dockerを体験する

はじめての人はまず始めにドットインストールのレッスンを参照して雰囲気を掴むのがよいと思います。

f:id:syonx:20140921031320p:plain

Boot2Docker を起動

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の操作は謎だと思うので、手順を説明します。

  1. 上の4行をコピー
  2. Boot2Docker をアクティブにしてキーボードのiを押す → 左下にIが表示される
  3. ウィンドウ左上のアイコンから 編集(E) → 貼り付け(P)
  4. キーボード Esc : w q Enter
  5. 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 については最先端の技術だと思いますので、まだまだそういうのを追っかけられるすごい人たちが書く難しい記事がほとんどだと感じています。それらを読んでも技術的な側面ばかりで、これが実際の業務や生活の中で具体的にどう便利なのかがわからないんですよね。それでもこの技術が素晴らしいということはなんとなくわかるので、少しずつ理解を深めて活用していけるようになれればなぁと思います。

Links

UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学

Ubuntuではじめる! Linux入門キット 14.04対応

Ubuntuではじめる! Linux入門キット 14.04対応