Dockerとは?
Dockerは、アプリケーションを「コンテナ」という軽量な仮想環境にパッケージ化して実行するためのプラットフォームです。
仮想マシン(VM)との違い
| VM | Docker | |
|---|---|---|
| 起動時間 | 数分 | 数秒 |
| リソース消費 | 重い(OSごと動く) | 軽い(OSカーネルを共有) |
| 環境の再現性 | △ | ◎ |
| 配布のしやすさ | △ | ◎ |
Linux・WAS・DB2のテスト環境構築に優れているか?
結論:優れている部分と注意点があります。
✅ 優れている点
- Linux環境:Docker自体がLinuxベースなので、Ubuntuなど様々なディストリビューションをコマンド一発で起動できます
- DB2:IBM公式イメージがDocker Hubに存在するため、比較的簡単に構築可能です
- WAS(WebSphere Application Server):IBM公式のDockerイメージあり。ただしライセンスが必要な場合があります
- 複数環境の同時起動:docker-composeを使えばLinux+WAS+DB2をまとめて一括起動できます
⚠️ 注意点
- WAS・DB2は商用製品なので、開発者向けライセンスの確認が必要
- DB2はイメージが重め(数GB)で、初回ダウンロードに時間がかかります
- macOS/WindowsではDocker Desktop経由の動作になり、パフォーマンスがネイティブLinuxより若干落ちます
テスト環境を他のSEに丸ごと渡せる!
Dockerの大きなメリットの一つが、環境をそのまま他の人に渡せることです。
方法① Dockerイメージをファイルとして渡す(オフライン)
# 渡す側:イメージをファイルに書き出す
docker save -o my-env.tar my-app:latest
# 受け取る側:ファイルからイメージを読み込む
docker load -i my-env.tar
USBやファイルサーバー経由でファイルを渡すだけです。
方法② docker-compose.yml を共有する(推奨)
受け取った側は以下を実行するだけで、WAS・DB2・Webアプリが全部自動で立ち上がります。
docker-compose up
方法③ Docker Hub(プライベートリポジトリ)経由
社内ネットワーク上にレジストリを立てて、イメージをpush/pullで共有する方法です。大人数で共有する場合に向いています。
受け取る側の必要条件
| 条件 | 内容 |
|---|---|
| 必須 | Docker Desktop(またはDocker Engine)のインストール |
| WAS・DB2の場合 | IBMライセンスへの同意(開発用は無料の場合あり) |
| 推奨 | docker-composeのインストール |
docker-composeの役割
一言で言うと:「複数のコンテナをまとめて管理するツール」です。
なぜ必要か?
Dockerは基本的に1コンテナ=1サービスという考え方です。WASコンテナ・DB2コンテナ・Webアプリコンテナをバラバラに管理するのは大変です。起動順序・ネットワーク接続・設定を全部手動でやる必要があります。
docker-composeが解決すること
① 一括起動・停止
docker-compose up # WAS+DB2+Webアプリを全部同時起動
docker-compose down # 全部まとめて停止・削除
② コンテナ間のネットワークを自動設定
Webアプリ → WAS → DB2 の接続関係をymlに書くだけで、自動でつなげてくれます。
③ 設定を1ファイルで管理(docker-compose.yml例)
version: '3'
services:
db2: # DB2コンテナ
image: ibmcom/db2
environment:
- LICENSE=accept
- DB2INST1_PASSWORD=pass
ports:
- "50000:50000"
was: # WASコンテナ
image: ibmcom/websphere-traditional
depends_on:
- db2 # DB2が起動してからWASを起動
ports:
- "9080:9080"
webapp: # Webアプリコンテナ
build: ./app
depends_on:
- was # WASが起動してからWebアプリを起動
ports:
- "8080:8080"
主なコマンド一覧
| コマンド | 内容 |
|---|---|
docker-compose up |
全コンテナ起動 |
docker-compose up -d |
バックグラウンドで起動 |
docker-compose down |
全コンテナ停止&削除 |
docker-compose ps |
稼働中コンテナの確認 |
docker-compose logs |
ログの確認 |
docker-compose restart |
再起動 |
まとめ
- Dockerは軽量・高速なコンテナ型仮想環境で、VMより圧倒的に手軽
- Linux・WAS・DB2のテスト環境をコマンド1つで構築できる
- 環境をそのまま他のSEに渡せるので、「自分のPCでは動くのに…」問題が解消
- docker-composeを使えば複数コンテナの起動順序・接続・設定を一元管理できる
テスト環境の準備に時間をかけるのではなく、本来の開発・テスト作業に集中できるのがDockerの最大の価値です。