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