chakokuのブログ(rev4)

テック・コミック・ごくまれにチャリ

UbuntuにDockerを入れてみる

最近、周囲でDockerネタが騒がしいので、理解すべくWindows環境にDockerを入れてみる。自分はさっさとWindows10に上げてしまったのだけど、Boot2Dockerで環境を構築してみたが、いろいろ環境変数の不整合などですんなりとは動かない。
だったら無理してVirtualBox上で動かさなくても、これまで使っていた、VMWare上のUbuntuでDockerを走らせたらいいのでは?と思い、Ubuntu上に構築を試みた。
普段使ってる仮想環境上のUbuntu:14.04.3 LTS
とりあえず、パッケージを最新に整える


# apt-get update
# apt-get upgrade
手順書ではパイプで走らせているけど、中がどうなっているのかちょっと見たいので、適当なファイルに一旦落としてから実行

# wget -qO- https://get.docker.com/ > setup.sh
# chmod +x ./setup.sh
# ./setup.sh
# wget -qO- https://get.docker.com/gpg > apt-key.txt
# apt-key add apt-key.txt
# exit

$ sudo docker run hello-world

ここで、あまり勉強せずに、ipython/notebookを走らせてみる。。root権限でdockerコマンドを使うのはちょっと権限上まずい気がするが、、一般ユーザだとエラーになるので(先人のブログを見ると、やはり権限設定しないとだめなようだ。)


# docker run -i -t -p 443:8888 -e "PASSWORD=12345678" ipython/notebook
上記、ipython/notebookではいつまで経ってもパッケージが落ちてこなかった。もう少し別の動きそうなサンプルを試す。

$ sudo docker run docker/whalesay cowsay boo
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
hello-world latest af340544ed62 5 days ago 960 B
docker/whalesay latest fb434121fc77 11 weeks ago 247 MB
docker/whalesayは動いた(Asciiで描かれたクジラの絵を表示して終わりか。。)

$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e350fc6bf67b docker/whalesay "cowsay boo" 2 minutes ago Exited (0) 2 minutes ago kickass_curie
647d444df2e0 hello-world "/hello" 24 minutes ago Exited (0) 24 minutes ago cranky_franklin

レポジトリ側の問題と思うが、、ipython/notebookは全く応答せず、ipython/ipythonは順番に落とされているが、何かの理由により通信待ち状態だ。。


*略*
ac4b03cd23fe: Layer already being pulled by another client. Waiting.
ipyton/notebookはいろんな人の作品があるようで、、他のイメージを試してみる。

sudo docker run -d -p 8080:8888 skitazaki/python34-ipython
上記イメージはすんなり動いた(ipython/notebookが)。左の図は、VMWare上で動作するUbuntu内で、Dockerを走らせ、Dockerからipython/notebookのコンテナを動かし、PC上のブラウザからアクセスしたところ。これは素晴らしい!!

想定される質問と答え
Q:なぜわざわざ何段も仮想レイヤーを重ねてiPython/notebookを動かすのか?
A:本来は素のWindows環境で動作するようにインストールするべき。だけど、、以前素のWindows環境にiPython/notebookを入れようとして挫折したから。

■関連URL
http://docs.docker.com/linux/step_one/
https://hub.docker.com/r/docker/whalesay/

sudoかグループへの所属が必要という記事(naomichi-y様)
http://qiita.com/naomichi-y/items/93819573a5a51ae8cc07

Docker で IPython Notebook を動かす(kshigeru様)
http://qiita.com/kshigeru/items/c7e2326c094d47647508