coreos-vagrantで遊んでみた(というかほぼDocker)
かきっぱなしでもあれなので、供養のためにメモがてら公開。 2015/12/24 23:44 ーーー
これは、CoreOSとDockerに、別に人生を捧げていない男の物語である。
ちょっと前からなんとなくCoreOSが気になってて、それが恋だと気づいたのがつい先日(嘘)。
で、調べてみたらcoreos-vagrant
なるVagrant用のBoxが提供されていたので使ってみた。
まだ触っている最中なのだけど、わかったことはCoreOS上でアプリを動かすには基本的にDockerを利用するそうで、そんな流でついでにDockerの勉強もしていたりする。
参考にさせていただいたサイトはここらへん。
coreos-vagrantの導入
やはりgithubからですね。本当に便利な時代になりました。
git clone https://github.com/coreos/coreos-vagrant cd coreos-vagrant
ローカルマシンのディレクトリと、CoreOS上のディレクトリをShareする設定を追記
ローカルマシンにShareするディレクトリを作成(やらなくてもいい)
$ mkdir share
Vagrantfileに下記を追記する
# Uncomment below to enable NFS for sharing the host machine into the coreos-vagrant VM. #config.vm.synced_folder ".", "/home/core/share", id: "core", :nfs => true, :mount_options => ['nolock,vers=3,udp'] config.vm.synced_folder "./share", "/home/core/share", id: "core", :nfs => true, :mount_options => ['nolock,vers=3,udp'] # この行を追記
これでCoreOS上の/home/core/share
と、ローカルマシンのvagrant-coreos/share
が共有されたディレクトリになる
テスト用になんでもないファイルを配置しておいた。
$ cd share/ $ echo "hello world" > test.txt
Vagrantで操作
起動(OSのパスワードを求められた)
$ vagrant up
Vagrantのステータスを見てみる
$ vagrant status Current machine states: core-01 running (virtualbox)
CoreOSにログイン
$ vagrant ssh Last login: Fri Aug 28 00:23:01 2015 from 10.0.2.2 CoreOS alpha (779.0.0) core@core-01 ~ $ exit logout Connection to 127.0.0.1 closed. $
CoreOSを2台立ち上げる設定
$ cp ./config.rb.sample ./config.rb
num_instancesを2に変更する
# Size of the CoreOS cluster created by Vagrant # $num_instances=1 $num_instances=2
$ vagrant up
$ vagrant status
$ vagrant ssh core-02
Docker
image取得
core@core-01 ~ $ docker pull centos latest: Pulling from centos f1b10cd84249: Pull complete c852f6d61e65: Pull complete 7322fbe74aa5: Pull complete Digest: sha256:90305c9112250c7e3746425477f1c4ef112b03b4abe78c612e092037bfecc3b7 Status: Downloaded newer image for centos:latest
Pull出来るオフィシャルのimagesは、DockerHubのExploreで確認出来る。
image確認
core@core-02 ~ $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos latest 7322fbe74aa5 9 weeks ago 172.2 MB
コンテナ作成
core@core-02 ~ $ docker run -it --name="omiend/centos-01" centos /bin/bash [root@20618ada0421 /]# exit exit core@core-02 ~ $ docker run -itd --name="omiend/centos-02" centos /bin/bash 84a1298f813b4bb33acc5ca578b0fb8694eddc769f1e4689ebd5d0312c98b3f8
-i
-t
-d
バックグラウンドで実行する
コンテナ確認
core@core-02 ~ $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 84a1298f813b centos:latest "/bin/bash" 20 seconds ago Up 19 seconds omiend/centos-02 20618ada0421 centos:latest "/bin/bash" About a minute ago Exited (0) About a minute ago omiend/centos-01
-a
をつけると稼働していないコンテナも表示される
コンテナ起動
core@core-02 ~ $ docker start omiend/centos-01 omiend/centos-01 core@core-02 ~ $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 84a1298f813b centos:latest "/bin/bash" About a minute ago Up About a minute omiend/centos-02 20618ada0421 centos:latest "/bin/bash" 2 minutes ago Up 1 seconds omiend/centos-01
コンテナへのログイン
core@core-02 ~ $ docker attach omiend/centos-02 [root@84a1298f813b /]# exit exit
コンテナの削除
core@core-02 ~ $ docker run -itd --name="omiend/centos-03" centos /bin/bash 507b033c0e0704b1aae3dce3feee8d75650f917035ed8de564248b17d84e3348 core@core-02 ~ $ docer ps -bash: docer: command not found core@core-02 ~ $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 507b033c0e07 centos:latest "/bin/bash" 15 seconds ago Up 14 seconds omiend/centos-03 84a1298f813b centos:latest "/bin/bash" 8 minutes ago Exited (0) 6 minutes ago omiend/centos-02 20618ada0421 centos:latest "/bin/bash" 9 minutes ago Exited (137) 5 minutes ago omiend/centos-01 core@core-02 ~ $ docker rm omiend/centos-03 omiend/centos-03 core@core-02 ~ $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 84a1298f813b centos:latest "/bin/bash" 11 minutes ago Exited (0) 9 minutes ago omiend/centos-02 20618ada0421 centos:latest "/bin/bash" 12 minutes ago Exited (137) 8 minutes ago omiend/centos-01
独自イメージの作成
コンテナから作成する
core@core-02 ~ $ docker commit omiend/centos-01 mycentos01 dfbc27f0b758fa80d0eff48d3021b9ea593fee4b860d9ab1942ee65f5dd91363 core@core-02 ~ $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE mycentos01 latest dfbc27f0b758 2 seconds ago 172.2 MB centos latest 7322fbe74aa5 9 weeks ago 172.2 MB
imageの削除
core@core-02 ~ $ docker rmi mycentos01 Untagged: mycentos01:latest Deleted: dfbc27f0b758fa80d0eff48d3021b9ea593fee4b860d9ab1942ee65f5dd91363 core@core-02 ~ $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos latest 7322fbe74aa5 9 weeks ago 172.2 MB
もしcommit時に名前を指定し忘れた場合、IMAGE ID
を指定すれば削除できる
core@core-02 ~ $ docker commit omiend/centos-02 1d3d787c37024079e0fb9e515015f8428a39fc18859bbbca4cd141b80c18c770 core@core-02 ~ $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE <none> <none> 1d3d787c3702 5 seconds ago 172.2 MB centos latest 7322fbe74aa5 9 weeks ago 172.2 MB core@core-02 ~ $ docker rmi 1d3d787c3702 Deleted: 1d3d787c37024079e0fb9e515015f8428a39fc18859bbbca4cd141b80c18c770 core@core-02 ~ $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos latest 7322fbe74aa5 9 weeks ago 172.2 MB