docker on CoreOS さわった
いろんなところで騒がれているようだけどようやく手を動かしてみた。
チュートリアルやり始めただけだけど。
VirtualBoxでCoreOS動かしてその上でdockerを動かす方法。
環境汚さないし、なにより素早く試せるのでお勧めできる組み合わせ。
CoreOS(とdocker)の導入
CoreOSの導入は公式を参照した。
https://coreos.com/docs/running-coreos/platforms/vagrant/
git clone https://github.com/coreos/coreos-vagrant.git cd coreos-vagrant\ vagrant up vagrant ssh
これでCoreOSが立ち上がった。
何より感動したのは速さ。
CentOSでは初回のvagrant up
は結構時間かかったし起動もそれなりだったけど、CoreOSはほんの数秒から十数秒くらい(体感)。
cygwin warning: MS-DOS style path detected: C:/Users/xxx/.vagrant.d/insecure_private_key Preferred POSIX equivalent is: /cygdrive/c/Users/xxx/.vagrant.d/insecure_private_key CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames Last login: Tue Mar 25 09:25:37 UTC 2014 from 10.0.2.2 on ssh ______ ____ _____ / ____/___ ________ / __ \/ ___/ / / / __ \/ ___/ _ \/ / / /\__ \ / /___/ /_/ / / / __/ /_/ /___/ / \____/\____/_/ \___/\____//____/
起動時にcygwin warningが出たけどまあとりあえず気にしない。
パス関連のことを言っているらしい。
既にdocker入ってる。
core@localhost ~ $ docker -v Docker version 0.9.0, build 2b3fdf2
Interactive commandline tutorial
https://www.docker.io/gettingstarted/#
大変わかりやすい。
dockerの基本的なコマンドが分かる。
一応概念的に把握した範囲で書くと以下の様な感じ。
間違っている可能性はあるし適当なのはその通り。
dockerはOSのイメージ持ってきて、コンテナ起動して、コマンド実行する。
コマンドが終了するとコンテナも終了する。
コンテナはとりあえず仮想マシンと読み替えても良い。
コマンドの実行結果やインストールしたものとかは消えるわけじゃないけど、そのままじゃ使いまわせない。
使いまわすためにはコミットする。
Gitとかだとコミット+タグ付けみたいな印象を持った(個人的感想)。
以下はチュートリアルで使ったコマンド。
一応ざっくりしたコメント付けたけどチュートリアルやったほうが良い。
# バージョン docker version # イメージ探す docker search tutorial # イメージダウンロード docker pull learn/tutorial # コマンド実行 docker run learn/tutorial echo "hello world" # コマンド実行 docker run learn/tutorial apt-get install -y ping # 起動中のコンテナ一覧 docker ps -l # IDで指定したコンテナの保存 docker commit {ID} learn/ping # 保存したイメージから実行 docker run learn/ping ping google.com # 起動中のコンテナ一覧 docker ps # IDで指定したコンテナの情報を見る docker inspect {ID} # 手元のイメージ一覧 docker images # アップロード docker push learn/ping
docker ps -l
のl
オプションが何を表すのかよく分からなかった。
ドキュメントにも書いてない…
Dockerfile Tutorial
https://www.docker.io/learn/dockerfile/
次はこれを読む。
さっき手動でコマンド打ってたのが自動化できると思えば良い(はず)。
環境構築とかできる。
さっきのチュートリアルよりは長文だけど平易な英語で書かれているので多分大丈夫。
インストラクションて呼ばれる命令を書いていくらしい。
まだFROMとRUNってやつしか知らない。
FROMはイメージを指定する。
docker search centos
とかして探したものを指定する。
RUNは実行したいコマンドを書く。
1つRUNするごとにdocker commit
もされる。
インストラクションを書いたDockerfileを以下のような方法で実行すると良い。
# カレントディレクトリにDockerfileがある場合 docker build . # 標準入力から流し込む場合 docker build - < Dockerfile # Githubリポジトリから利用する場合 docker build github.com/creack/docker-firefox
引き続き読んでく。
その他
利用可能なイメージは以下から探せる。
https://index.docker.io/