ConoHa × dockerやってみた
3/22(土)に友人とdockerで遊ぼうということで、 13時くらいスタートでdocker使って何かやろうとしたときのまとめです。
雑談してたら14時半くらいになってたので実質作業時間は、5時間くらいです。
環境
- ConoHa(centos6.4)
ConoHaかわいいよ!
ABC2014Springで、クーポンとかもらったので使わせていただきます。
参考
- naoyaさんのブログ Docker (土曜日に podcast します)
- ConoHaの薄い本 Vol.3 〜 ConoHa + Dockerでサーバーをドカドカたてよう!
ゴール
dockerとはなんぞや
こちら参考で一部引用。
- naoyaさんのDocker (土曜日に podcast します)
ようするにこういうこと↓
適当な条件の VM をポコポコ生み出してはテストや実際の運用に使うことができたりするもの
具体的に使う例として
- PaaSみたいな感じ。つくったイメージでVMつくってデプロイしてすぐアプリが動くとか
- Travis CIみたいな感じ。各言語ごとの実行環境が整ったVMみたいなものに任意のコードを渡してビルドさせるとか
一応理解したので、実際にやってみた
とりあえずイメージつくる
docker起動してcentosベースでtelnetいれたイメージをつくる
インストールは省略。rpm追加してyum install dockerみたいな感じ。 3行でいける。
# docker起動 $ service docker start # centos入れる $ docker pull centos # centosイメージでbash起動してtelnetインストール $ docker run -i -t centos /bin/bash bash-4.1# yum -y install telnet # commitしてイメージをつくる $ docker commit `dl` conoha/telnet
こんだけで完成。
Dockerfileつくる
Dockerfileを使ってwebサーバーを起動する。
centosベースでtelnetとhttpdをinstallしてhttpdコマンドで起動する感じ。
Dockerfileの中身
FROM centos RUN yum -y install telnet RUN yum -y install httpd CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
すげー俺でも読めるわー。
Dockerfileを実行
# Dockerfileでイメージコンテナをつくる $ docker build -t conoha/hogeapache ~/docker/hoge # ConoHaの80ポートとconoha/hogeapacheの80ポートをつなぐ感じで起動する $ docker run -p 80:80 -d conoha/hogeapache
なるほどねー
ConoHaタソにアクセスしてみる
イェア!!!!!!!!Apache testページキタ━(゚∀゚)━!
Docker公式で一杯イメージあるよ!
検索も便利そう。
よく使うコマンド
今手元にあるイメージを確認する
$ docker images
イメージを指定してbashを起動
$ docker run -i -t [IMAGE] /bin/bash
起動してるdockerプロセスの確認
$ docker ps
Tips
dockerコマンドをaliasに追加しておかないとダルい
$ echo "alias dl='docker ps -l -q'" >> ~/.bashrc
そうするとイメージ保存が、こんな感じになる。
$ docker commit `dl` [IMAGE]
cocos2d-x android & docker
誰かのdockerfileにまかせる
以下の、いい感じのandroid環境のdockerfileがあったので入れてみた。
https://index.docker.io/u/ahazem/android/
$ docker pull ahazem/android
起動してもなんかエラー
latestのimageがないとかなんとか
$ docker run -t -i ahazem/android /bin/bash Unable to find image 'ahazem/android' locally 2014/03/22 17:58:08 Error: create: No such image: ahazem/android (tag: latest)
ちゃんとpullしたつもりなので、docker imagesで確認する。
$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ahazem/android v0.7.6 728a984d2d61 7 weeks ago 5.397 GB
tagがちがうので作る
TAGなんかversionになっとる。自分でつくるしかない。
$ docker tag ahazem/android:v0.7.6 ahazem/android:latest
というか、作ったあとに気がついた。タグ指定したらlatestなくてもいいのか。
$ docker run -t -i ahazem/android:v0.7.6 /bin/bash
tag指定なしのrunは、デフォルトでlatestタグで起動するみたいだよ!
が言いたかった。
まとめ
cocos2d-xどうなった?
- 5時間くらいじゃ、時間たりねー。( ‘д‘⊂彡☆))Д´) パーン
ConoHaどうなの
- 使い勝手は、結構いい感じ。イメージキャラクターは大事。
Dockerどうなの
おわり
どっかーで遊ぼうの打ち上げ。ギネス! pic.twitter.com/XFAMiYYIrf
— よこみー (@k_yokomi) 2014, 3月 22