[Docker] 自分専用のイメージを作成して利用する(commitコマンド)
こんにちは、@yoheiMuneです。
今日は「Dockerに入門する」の続きで、色々とカスタマイズしたコンテナをイメージとして保存したり利用したりする方法を書きたいと思います。
Docker実践ガイド impress top gearシリーズ(Amazon)
最後になりますが本ブログでは、Node.js・Python・Linux・フロントエンド・インフラ・Go言語・開発関連・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!
今日は「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:10cde8c1824a2687f3f6e99b75acab2aca4c4b7bf96cf397fe318dcabf2e415810秒ほど時間がかかり作成が完了します。完了したら以下のコマンドで作成されたことを確認できます。
$ 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の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!