はじめに
Dockerは、アプリケーションを環境に依存せず動かすためのコンテナ技術です。Linux上での開発・運用においては、JavaやPythonのアプリをコンテナ化することで、環境差異によるトラブルを最小限に抑えることができます。
この記事では、Linux上にDockerを導入し、Java・Pythonアプリをコンテナ化するまでの流れを解説します。
1. LinuxでDockerをインストールする
1-1. 事前準備
まずはパッケージリストを更新します。
sudo apt update
sudo apt upgrade -y
1-2. Dockerのインストール
Ubuntu系の場合、以下の手順でDockerをインストールします。
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
1-3. Dockerサービス確認
sudo systemctl status docker
active (running)
となっていればOKです。
2. サンプルJavaアプリをコンテナ化する
2-1. Javaアプリの準備
簡単なHelloWorldプログラムを作成します。
Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello from Java in Docker!");
}
}
2-2. Dockerfileを作成
Javaの公式イメージを利用します。
Dockerfile
FROM openjdk:17
WORKDIR /app
COPY Hello.java .
RUN javac Hello.java
CMD ["java", "Hello"]
2-3. ビルドと実行
docker build -t java-hello .
docker run --rm java-hello
結果:
Hello from Java in Docker!
3. サンプルPythonアプリをコンテナ化する
3-1. Pythonアプリの準備
app.py
print("Hello from Python in Docker!")
3-2. Dockerfileを作成
Pythonの公式イメージを利用します。
Dockerfile
FROM python:3.10
WORKDIR /app
COPY app.py .
CMD ["python", "app.py"]
3-3. ビルドと実行
docker build -t python-hello .
docker run --rm python-hello
結果:
Hello from Python in Docker!
4. Docker Composeで複数アプリをまとめて管理する
JavaとPythonのコンテナを同時に動かしたい場合は、Docker Composeが便利です。
docker-compose.yml
version: "3.9"
services:
javaapp:
build: ./java
container_name: java_container
pythonapp:
build: ./python
container_name: python_container
構成例:
./java
フォルダ → Java用のDockerfileとソースコード./python
フォルダ → Python用のDockerfileとソースコード
起動方法:
docker-compose up --build
まとめ
この記事では、Linux環境にDockerを導入し、Java・Pythonアプリをコンテナ化する方法を紹介しました。
- Dockerを使えば、環境差異を気にせずアプリを実行できる
- Java・Pythonは公式イメージを活用して簡単にコンテナ化可能
- 複数アプリを動かす場合はDocker Composeが便利
今後は、データベース(MySQL・PostgreSQL)やWebサーバ(Nginx・Apache)との連携もコンテナで統一すると、より実務的な環境構築が可能になります。