dockerの学習
お盆休みを利用してのdockerの学習を思い立ちました。
ありきたりですが、覚え書きとして書き残しておきます。
インストールするサーバ
サーバは既存のさくらVPS(1G)。Ubuntu Server 14.04LTS(64)です。
他の勉強やテストには使っていますが、実用のサービスを動かしてはいませんので、まあ好きに使えます。
dockerのインストール
いまさら聞けないDocker入門(2)
の手順にしたがってインストールして見ました。
本当に今さらですみません。
sudo apt-get update
sudo apt-get install docker.io
ubuntu/debianではdockerという別パッケージがあるので、docker.ioというパッケージ名にしてあるそうです。
シンボリックリンクを張る
上記理由によりいちいちdocker.ioと打たねばラならないのですが、めんどうなのでシンボリックリンクを張ります。
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
userをdockerグループに入れる
dockerはroot権限がいるそうなので、いちいちsudoするわけですが、それも面倒なので、dockerグループに普段使っているユーザ名を登録します。
$ sudo gpasswd -a ubuntu docker
をして再ログイン。
バージョン確認
ここまでやってdocker versionを見ましたら0.9.なんぼということでちょっと古い。
せっかくversion 1.0になったという話なのでアップデートしたいですがパッケージがどうにもで、いろいろ調べたらubuntuの場合は以下の純正手順でインストールすれば最新のバイナリが入るようです。
なんだ、やりなおしかww
ついに1.0がリリース!とか煽る記事のとおりにやったら0.9が入るってそりゃないよw
再インストール
Ubuntu docker documentation
を見ながらインストール。
lxc-dockerというパッケージをインストールすればいいらしいです。
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
でリポジトリを追加して、lxc-dockerのパッケージを追加します。
$ sudo sh -c "echo deb https://get.docker.io/ubuntu docker main
/etc/apt/sources.list.d/docker.list"
$ sudo apt-get update
$ sudo apt-get install lxc-docker
再インストールしたので、
$ sudo gpasswd -a ubuntu docker
をもう一回実行しておきます。
sudo docker versionすると、
Client version: 1.1.2
Client API version: 1.13
Go version (client): go1.2.1
Git commit (client): d84a070
Server version: 1.1.2
Server API version: 1.13
Go version (server): go1.2.1
Git commit (server): d84a070
ということで最新のようです。
起動テスト
ドキュメントでは
$ sudo docker run -i -t ubuntu /bin/bash
を実行してみるとbashのみのコンテナが動くので、これで動作チェックしとけというようなことが書いてあります。
起動してみるとイメージをダウンロードしてbashを起動してくれます。
root@534fba960fd7:/#
やや、2回目以降は一瞬でbashのプロンプトが出る。
lsしてみると
root@534fba960fd7:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
ちゃんと動いてるみたい。
ハイパーバイザ型の仮想化とは全然違うレスポンスです。これは楽しみだなあ。
試しに
$ sudo docker run -i -t centos /bin/bash
としてみたら、ちゃんとcentosが起動しました。
とりあえずサーバはここまで。
次はdocker imageを書いて動かす段取りに。