Docker

Dockerでcommitしてみる

More than 3 years have passed since last update.

docker_logo.png

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