2017/02/22更新

[Docker] 自分専用のイメージを作成して利用する(commitコマンド)

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
今日は「Dockerに入門する」の続きで、色々とカスタマイズしたコンテナをイメージとして保存したり利用したりする方法を書きたいと思います。
画像

目次




まず初めに

今回は、CentOS6のイメージをベースに拡張したいと思いますので、そのイメージを入手しておきます。
# CentOS6のイメージを入手する
docker pull centos:6
ダウンロード後に、イメージがあることが確認できればOKです。
# イメージ一覧を確認する
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              6                   8315978ceaaa        3 months ago        195 MB



コンテナを起動してカスタマイズする

上記で入手したCentOS6をベースにコンテナを起動します。
# コンテナを起動する
$ docker run --name my-centos6 -i -t centos:6 /bin/bash
その後にコンテナ内をカスタマイズします。ここではDevelopment toolsなど、各種プログラムをコンパイルするのに必要なモジュールをインストールしています。
# コンテナ内にて
$ yum groupinstall -y "Development tools"
$ yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
その他必要に応じてカスタマイズを行います。そしてコンテナからログアウトして終了させます。
# コンテナ終了
$ exit
最後に先ほど起動したコンテナのIDを確認しておきます。
$ docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED        STATUS                      PORTS    NAMES
02cce02842ba   centos:6  "/bin/bash"   12 hours ago   Exited (0) 14 seconds ago            my-centos6
ここでは02cce02842baがコンテナIDだとわかります。これでカスタムイメージ作成の準備が完了です。



コンテナからカスタムイメージを作成する

先ほど作成したコンテナからカスタムイメージを作成するには、commitコマンドを使います。
# カスタムイメージを作成します
# docker commit [コンテナID] [イメージ名]:[タグ名]
$ docker commit 02cce02842ba centos:my-centos6
sha256:10cde8c1824a2687f3f6e99b75acab2aca4c4b7bf96cf397fe318dcabf2e4158
10秒ほど時間がかかり作成が完了します。完了したら以下のコマンドで作成されたことを確認できます。
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              my-centos6          10cde8c1824a        11 hours ago        819 MB
centos              6                   8315978ceaaa        3 months ago        195 MB
これでカスタムイメージの作成が完了しました。



カスタムイメージからコンテナを作成する

カスタムイメージからコンテナを作成するには、いつも通りrunなどのコマンドを利用します。
$ docker run --name test01 -i -t centos:my-centos6 /bin/bash
[root@4b6f5e84d8a8 /]# 
例えば以下のコマンドを実行すると、モジュールが色々とインストール済みなことがわかります。
[root@4b6f5e84d8a8 /]# yum list installed



イメージを削除する

最後に、イメージを削除するには以下のコマンドを利用します。
$ docker rmi centos:my-centos6



参考情報

Dockerは以下の本で学びました。サクサクと読めて良かったです。ありがとうございます。

Docker実践ガイド impress top gearシリーズ(Amazon)



最後に

検証とかでよく使うものについては自分のイメージを作ると便利でいいですね。Dockerには色々な機能があって勉強になります。少しずつ学んではブログに残せたらと思います。

最後になりますが本ブログでは、Node.js・Python・Linux・フロントエンド・インフラ・Go言語・開発関連・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。