【Docker入門 】③ コンテナからイメージを作成する

Docker Hubで入手したイメージ(Docker image)を元に作成したDockerコンテナから、さらに新しいイメージを作成する方法をメモします。

必要なミドルウェアやソフト等をインストールして育てた状態のコンテナをイメージとして保存、作成しておく事でその時点からの同じ内容のコンテナをいつでも作成する事が出来るようになります。

(コンテナ削除後、もう一度同環境コンテナを作り直す際にインストールなどを一から行い直す必要が無くなります)

環境: Docker version 19.03.8、 Mac OS 10.13.6


(例)CentOSのDockerイメージから作成し、PHPApacheをインストールしたDockerコンテナ 「mycentos7」からイメージを作成する

1. コンテナが起動していれば、停止しておく

(確認)

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                NAMES
a79ad643ebd5        centos:centos7      "/sbin/init"        5 months ago        Up 10 minutes       0.0.0.0:80->80/tcp   mycentos7

(停止)

$ docker stop mycentos7

2. コンテナから新しいイメージを作成する
コンテナ「mycentos7」から新しいイメージ「centos-php-apache」を作成。

$ docker commit mycentos7 centos-php-apache

docker commit 「元となるコンテナ名」「作成するイメージ名」

イメージの作成を確認する(イメージ一覧表示)

$ docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
centos-php-apache        latest              6bf9dfcbd28b        3 minutes ago       2.96GB

3. 作成したイメージ「centos-php-apache」から新しいコンテナを立ち上げる
(コンテナ名「php-apache-container」とする)

$ docker run -p 80:80 -d --privileged --name php-apache-container centos-php-apache /sbin/init

コンテナの作成、起動を確認する

$ docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED           STATUS                        PORTS                NAMES
e66a5f31b341      centos-php-apache            "/sbin/init"             17 seconds ago      Up 15 seconds                 0.0.0.0:80->80/tcp   php-apache-container

コンテナへログイン

$ docker exec -it php-apache-container bash

ログイン済みのコンテナ内、下記のバージョン確認コマンドで
イメージの元にしたコンテナ「mycentos7」と同様、phpとApacheがそれぞれセットアップされている事が確認出来るはずです。

php -v
httpd -v

Follow me!

【Docker入門 】③ コンテナからイメージを作成する” に対して1件のコメントがあります。

コメントは受け付けていません。