以前Docker上でCentOSを動かしてみましたが、今度はcommitして新しいイメージを作成してみる。
コンテナ起動
まずはコンテナを起動する。名前はdefaultとします。
core@core-01 ~ $ docker run -i -t -d --name="default" centos /bin/bash
起動確認
core@core-01 ~ $ docker ps
CONTAINER ID  IMAGE          COMMAND    CREATED        STATUS        PORTS  NAMES
55082e783e5f  centos:latest  /bin/bash  2 seconds ago  Up 1 seconds         default
コンテナに接続
docker attachコマンドでコンテナに接続します。
接続先の指定は コンテナID, コンテナ名 どちらでも可能。
core@core-01 ~ $ docker attach default
bash-4.1#
接続したら検証用にApacheをインストールしておく。
bash-4.1# yum -y install httpd
コミット(イメージ作成)する
まずはctl+p``ctl+qでコンテナから抜ける。
docker commitコマンドでdefaultというコンテナをhttpdという名前のイメージとして保存する。
core@core-01 ~ $ docker commit default httpd
docker imagesコマンドで確認すると、httpdという名前のイメージができていることが確認できる。
core@core-01 ~ $ docker images
REPOSITORY  TAG     IMAGE ID      CREATED         VIRTUAL SIZE
httpd       latest  097a51f5048a  35 minutes ago  205.4 MB
centos      latest  0c752394b855  3 weeks ago     124.1 MB
同一リポジトリにhttpdタグを付与して管理する場合には次のようにオプションを指定する。
core@core-01 ~ $ docker commit default centos:httpd
core@core-01 ~ $ docker images
REPOSITORY  TAG     IMAGE ID      CREATED         VIRTUAL SIZE
centos      httpd   78620a15284f  4 seconds ago   205.4 MB
centos      latest  0c752394b855  3 weeks ago     124.1 MB
イメージを削除する
docker rmiコマンドでイメージを削除する。
ちなみに、起動中のコンテナで使用しているイメージは削除できないみたいです。
core@core-01 ~ $ docker rmi httpd
Untagged: httpd:latest
Deleted: 097a51f5048a2dd7a6aa6776feb36c2bfaaba963ec9259bba1bf840b80d446c7
まとめ
Docker Commitする場合は docker commit <コンテナ名/ID> <イメージ名>:<タグ名> で行う。
