Amazon EC2でDocker

自分用の記録として。進行中。

参考リンク

Marketplaceから以下を選択する。
CentOS 6 (x86_64) - with Updates

    • OSのアップグレード

# yum update
...
COMPLETE!

    • アップデートが上手くいったか確認する

# cat /etc/redhat-release
CentOS release 6.5 (Final)

参考
How To: Install RHEL EPEL Repo on Centos 5.x or 6.x

# yum install wget
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -Uvh remi-release-6.rpm epel-release-6-8.noarch.rpm
# ls -l /etc/yum.repos.d/epel* /etc/yum.repos.d/remi*

    • 普段は使いたくないので無効にしておく

# vi /etc/yum.repos.d/epel.repo

enabled=0

  • Dockerをインストールする
    • RPMをインストールする

# yum install docker-io --enablerepo=epel
# yum -y update docker-io --enablerepo=epel
# service docker start
# chkconfig docker on
# chkconfig --list | grep docker
# docker run centos /bin/echo "Hello World"
# docker run centos yum -y update
# docker run centos cat /etc/redhat-release

下3行はお試しでCentOSのコンテナを動かしてる。現時点でCentOS 6.4。

    • イメージを作る。

イメージの定義ファイルを作成する。

# vi Dockerfile

FROM centos

    • イメージを作成する。

# docker build -t kappaseijin/centos65 .

    • イメージからコンテナを起動&ターミナルへログインしてOSをアップデートする。

# docker run -t -i kappaseijin/centos65 /bin/bash

yum -y update
..
Complete!
(このままターミナルを抜けるとコンテナでの作業が保存されずに消えるので今回はexitとかCtrl-dはしてはいけない)
(Ctrl-p Ctrl-qを打ってコンテナを動かしたままターミナルから抜ける)

    • コンテナの状態をイメージへ保存する

# docker ps
(1番左に表示されるIDを記録する)
# docker commit さっきのID kappaseijin/centos65
(ファイルの変更/新規が多いとコミットに時間が掛かる)

    • コンテナを終了させる

# docker kill さっきのID