以前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> <イメージ名>:<タグ名>
で行う。