Dockerでcommitしてみる

  • 82
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

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