docker で Ubuntu quantel をインストールして saucy にアップグレードした2013年10月19日

docker を試してみようと、練習がてら Ubuntu をインストールし、リリースされたばかりの saucy にアップグレードしてみました。以下はその記録です。まだ lxc や docker のことをよくわかってないのでピンぼけかもしれません。

docker のインストール

環境は私がデスクトップとして使ってる Ubuntu 13.04 raring です。64bit 環境です。インストール手順はここに書いてあるとおり。

Ubuntu Raring 13.04 (64 bit) - Requirements and Installation on Ubuntu Linux - Docker Documentation

インストールのあと、自分を docker グループに所属させます。そして再ログイン。

Ubuntu のイメージをゲット

$ docker pull ubuntu

これを書いてる時点で 12.04 (precise) と 12.10 (quantel) のイメージがダウンロードされます。

docker で Ubuntu 環境を実行

$ docker run -t -i ubuntu:quantal /bin/bash
root@69c5ea1c1e80:/#

ダウンロードした ubuntu イメージのうち、タグ quantel (12.10) が付いた環境で /bin/bash が起動されます。69c5ea1c1e80 は起動されたコンテナのIDです。

13.04 へのアップグレードの準備

do-release-upgrade でアップグレードするために、ダウンロードした quantel のママではうまくいかないので、quantel-updates でパッケージを更新し、また、initclt などに細工を行います。

root@69c5ea1c1e80:/# echo "deb http://archive.ubuntu.com/ubuntu quantal-updates main" >> /etc/apt/sources.list
root@69c5ea1c1e80:/# apt-mark hold initscripts udev plymouth mountall
root@69c5ea1c1e80:/# dpkg-divert --local --rename --add /sbin/initctl
root@69c5ea1c1e80:/# ln -s /bin/true /sbin/initctl
root@69c5ea1c1e80:/# cat > /usr/sbin/policy-rc.d << EOF
> #!/bin/sh
> 
> exit 101
> EOF
root@69c5ea1c1e80:/# chmod +x /usr/sbin/policy-rc.d
root@69c5ea1c1e80:/# apt-get update
  :
root@69c5ea1c1e80:/# apt-get upgrade
  :
root@69c5ea1c1e80:/# ls -l /sbin/initctl*
lrwxrwxrwx 1 root root      9 Oct 18 14:27 /sbin/initctl -> /bin/true
-rwxr-xr-x 1 root root 155560 Oct 12  2012 /sbin/initctl.distrib
root@69c5ea1c1e80:/# apt-get install update-manager-core python-apt
  :
root@69c5ea1c1e80:/#

raring (13.04) へのアップグレード

root@69c5ea1c1e80:/# do-release-upgrade

質問に答えるなどして進みます。時間かかります。アップグレードしたら、exit コマンド (CTRL + D でも OK) で、コンテナ環境から抜け、コンテナ環境を停止します。

root@69c5ea1c1e80:/# exit

確認

いましがた止めたコンテナを確認しましょう。

$ docker ps -a
ID                  IMAGE               COMMAND             CREATED             STATUS              PORTS
69c5ea1c1e80        ubuntu:12.10        /bin/bash           40 minutes ago      Exit 0                               

raring のタグを打つ

さて、この状態 (69c5ea1c1e80) を「commit」して、コンテナ名 myrepo/ubuntu で、raring のタグを打ちます。

$ docker commit 69c5ea1c1e80 myrepo/ubuntu raring
5bbc0971b9c5

ここで表示された 5bbc0971b9c5 は、commit により作られたコンテナの イメージの ID になります。ここで取得、および、作成したイメージの一覧を表示してみます。

$ docker images
REPOSITORY          TAG                 ID                  CREATED             SIZE
myrepo/ubuntu       raring              5bbc0971b9c5        3 seconds ago       820.2 MB (virtual 1 GB)
ubuntu              12.04               8dbd9e392a96        6 months ago        131.5 MB (virtual 131.5 MB)
ubuntu              latest              8dbd9e392a96        6 months ago        131.5 MB (virtual 131.5 MB)
ubuntu              precise             8dbd9e392a96        6 months ago        131.5 MB (virtual 131.5 MB)
ubuntu              12.10               b750fe79269d        6 months ago        24.65 kB (virtual 180.1 MB)
ubuntu              quantal             b750fe79269d        6 months ago        24.65 kB (virtual 180.1 MB)

raring (13.04) の環境に入る

今作ったコンテナ myrepo/ubuntu のタグ raring の環境で /bin/bash を起動します。

$ docker run -t -i myrepo/ubuntu:raring /bin/bash
WARNING: Docker detected local DNS server on resolv.conf. Using default external servers: [8.8.8.8 8.8.4.4]
root@19837860884f:/# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 13.04
Release:	13.04
Codename:	raring

saucy (13.10) にアップグレード

root@19837860884f:/# do-release-upgrade

質問に答えるなどして進みます。しばらくかかります。アップグレードが完了したら exit コマンドで環境から抜けます。そして、今回実行した環境をコミットし、新しいイメージを作ります。

root@19837860884f:/# exit
$ docker commit 19837860884f myrepo/ubuntu saucy
21a2d79c3c16

結果

$ docker images
REPOSITORY          TAG                 ID                  CREATED             SIZE
myrepo/ubuntu       saucy               21a2d79c3c16        30 seconds ago      742.4 MB (virtual 1.743 GB)
myrepo/ubuntu       raring              5bbc0971b9c5        1 hour ago          820.2 MB (virtual 1 GB)
ubuntu              12.04               8dbd9e392a96        6 months ago        131.5 MB (virtual 131.5 MB)
ubuntu              latest              8dbd9e392a96        6 months ago        131.5 MB (virtual 131.5 MB)
ubuntu              precise             8dbd9e392a96        6 months ago        131.5 MB (virtual 131.5 MB)
ubuntu              12.10               b750fe79269d        6 months ago        24.65 kB (virtual 180.1 MB)
ubuntu              quantal             b750fe79269d        6 months ago        24.65 kB (virtual 180.1 MB)
$ docker images -viz | dot -Tpng -o graph.png

docker images graph

参考

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:


コメント:

トラックバック

このエントリのトラックバックURL: http://tkusano.asablo.jp/blog/2013/10/19/7015169/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。