the industrial

都内で働くITエンジニアの日記

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で確認出来る。

hub.docker.com

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