まめぞうの技術メモ

IT関連で勉強したことをメモします

Dockerでオリジナルイメージを作る方法

Dockerで自分だけのカスタマイズイメージを作ったので、作り方をメモします。

今回はCentOS8にJavaを入れる方法を試します。

また、dockerはrootユーザーで動くので、事前にrootにsuしておくと楽です。

そうでない場合は、各コマンドの頭に「sudo」をつけて下さい。

ベースイメージをpull

まずはベースとなるイメージdockerhubからpullします。

docker pull イメージ名:タグ

例えばCentOS8のイメージをダウンロードするなら以下になります。

docker pull centos:8

イメージをrunしてbashを起動

次に、dockerイメージをrunしてコンテナを生成します。

更に、コンテナの中を操作して必要なjavaをインストールするため、bashを起動します。

docker run -it イメージ名:タグ bash

以下は例です。

docker run -it centos:8 bash

必要に応じてコンテナの中を操作

これでコンテナの中に入れたので、作りたいdockerイメージに沿って必要な操作を実行します。

今回はjavaをインストールしたいので、yumでjavaをインストールします。

yum install java-11-openjdk-1:11.0.8.10-0.el8_2.x86_64

必要なものがインストールできたら、「exit」で抜けます。

コンテナをイメージとして保存

後は、コンテナをイメージとして保存するだけです。

まずは、先程作ったコンテナのIDを取得します。

docker ps -a

当方環境では、以下のように出力されました。行頭がコンテナIDです。

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
3ee87ed3d3d6        centos:8            "bash"              5 minutes ago       Exited (0) 6 seconds ago                       crazy_albattani

docker commit」コマンドでコンテナをイメージとして保存できます。

docker commit コンテナID イメージ名:タグ

当方環境では以下のようにしました。

docker commit 3ee87ed3d3d6 cent8-java11:1.0

しばらく待っているとイメージが作成できると思います。これで完成です。

docker imagesで確認した結果。

REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
cent8-java11        1.0                 4ca26eb667bf        About a minute ago   522MB
centos              8                   0d120b6ccaa8        12 days ago          215MB