読者です 読者をやめる 読者になる 読者になる

はやさがたりない。

へっぽこぷろぐらまのメモログ

Docker簡単にさわる

Docker

会社で環境を壊すという失態をしてしまったため、
Ansibleさんの自動化もすすめたいところだけど、ちょっとだけDockerさわってみることにした。

Macでのインストールはboot2dockerを利用する。
Mac直だとDockerさんは動かないみたい。
そのためboot2dockerさんで軽いVMをうごかしてその上でDockerさんを動かすイメージと認識。(あってるかな?)
インストール自体は超簡単

$brew install docker boot2docker

インストールしてみたもののどうなら勉強したいVagrant環境でやってみようとおもってそっちで進める

おまじないのようになってきたこいつ

$ vagrant init centos6.5
$ vagrant up
$ vagrant ssh

公式サイトに従いながらインストール

sudo yum -y update
sudo yum install docker-io

そして起動してみる。
pullはDockerイメージをダウンロードするためのコマンド。
ここではcentosの最新を指定している。
imagesはpullしたDockerイメージの一覧を表示するためのコマンド。
runはDockerコンテナーを実行するコマンド。とりあえずbashを実行する。

sudo service docker start
sudo docker pull centos:latest
sudo docker images 
sudo docker run -i -t centos /bin/bash

試しにテンポラリにファイルを作ってみて

bash-4.1# ls -l /tmp/
total 0
bash-4.1# touch /tmp/hoge
bash-4.1# ls -l /tmp/
total 0
-rw-r--r-- 1 root root 0 Jun 22 08:10 hoge

ぬけて、もう一回見てみると、ふぁいるがない!

bash-4.1# exit
exit
[vagrant@vagrant-centos65 ~]$ sudo docker run -i -t centos /bin/bash
bash-4.1# ls -l /tmp/
total 0
bash-4.1# 

docker ps -aで確認してみると、2つのコンテナが作成されていたことがわかる。
気軽にらんらんしちゃあかんのかな。

[vagrant@vagrant-centos65 ~]$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                          PORTS               NAMES
eaefaadad338        centos:latest       /bin/bash           About a minute ago   Exited (0) 6 seconds ago                            furious_thompson    
c2fe5ff7b502        centos:latest       /bin/bash           About a minute ago   Exited (0) About a minute ago                       goofy_thompson   

コンテナの削除はdocker rm PIDで、PIDは先頭数文字で消せるみたい。

[vagrant@vagrant-centos65 ~]$ sudo docker rm c2
c2
[vagrant@vagrant-centos65 ~]$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                          PORTS               NAMES
eaefaadad338        centos:latest       /bin/bash           2 minutes ago       Exited (0) About a minute ago                       furious_thompson    
[vagrant@vagrant-centos65 ~]$ 

とりあえずnginxでも入れてみる。
EPEL Repogitoryの追加が必要。

$ sudo docker run -i -t centos /bin/bash
# rpm -i http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
# yum -y update
# yum -y install nginx

ちょっとさわった感想

Vagrantさんとの使い分けがあまりわかってないな。
CIとかでがんがん作って消してをするならこっちの方が良さそうというのはわかる。
何となくさわってみてイメージつかみやすいのはVagrantさん。おおもとはVMだから当然っちゃ当然かも。 AWSはどっちも使えるみたいだしなぁ。