[Docker]軽量Java環境を爆速で作る(OpenJDK)

軽量Java環境を爆速で作成してみる。

関連記事

環境

macOS Ventura 13.3.1 (Chip: Apple M1)

軽量Java環境を爆速で作る

ちょっと今Javaプログラムを動かしたい、みたいなことが何度かあるので、手順を記載する。

イメージタグの確認

dockerhubの下記ページからイメージタグを確認する。

https://hub.docker.com/_/openjdk/tags

ここでは、比較的軽量の”slim”という文字が含まれるものを見つける。

フルのJavaイメージは2GB弱のサイズに対し、slimは200MB程度で軽量のように見える。

“slim”と検索バーに入力して検索してみる。

今回は、”XX-slim”(XXはJavaのバージョン)を見つける。

ここでは、”24-slim”を使用することとする。

コンテナの作成

Terminalを開いて、下記のように実行する。”openjdk:”の後に続くタグ名は前の手順で確認したタグ名に置き換える。

mkdir -m777 ~/javawork
docker run -it -v ~/javawork:/work -w=/work --rm openjdk:24-slim /bin/bash

(実行例)

 $ mkdir -m777 ~/javawork
 $ docker run -it -v ~/javawork:/work -w=/work --rm openjdk:24-slim /bin/bash
Unable to find image 'openjdk:24-slim' locally
24-slim: Pulling from library/openjdk
14c9d9d19932: Pull complete 
f247fc21c995: Pull complete 
25b7b6262a44: Pull complete 
Digest: sha256:ba8782422321c04b73c680ddc42c316df134bb0dc07889ae35c1cc64d5a87fd3
Status: Downloaded newer image for openjdk:24-slim
root@7aa4e26e3834:/work# 

これでopenjdk バージョン24が動くはず。

動作確認

まずはjavac/javaコマンドが使えるかを確認。

javac --version
java --version

(実行例)

root@7aa4e26e3834:/work# javac --version
javac 24-ea
root@7aa4e26e3834:/work# java --version
openjdk 24-ea 2025-03-18
OpenJDK Runtime Environment (build 24-ea+17-1938)
OpenJDK 64-Bit Server VM (build 24-ea+17-1938, mixed mode, sharing)
root@7aa4e26e3834:/work#

最後に~/javaworkフォルダにjavaファイルを配置してコンパイル・実行してみる。

まずは以下のjavaファイルを作成して、~/javaworkフォルダへ配置する。

class Test {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

エディタで作成してファインダーから配置してもいいし、viコマンド等で作成してもよい。

配置したファイルを、”Test.java”とすると、下記でコンパイル・実行する。

javac Test.java 
java Test

(実行例)

root@7aa4e26e3834:/work# javac Test.java 
root@7aa4e26e3834:/work# java Test
Hello World
root@7aa4e26e3834:/work# 

補足

上記の手順で作成したコンテナはexitして抜けるとコンテナは削除される。

削除されたくない場合は、docker run した際の、”–rm”を抜いて実行する。

以上。