
Dockerを使えば、Javaに限らずあらゆる環境での開発が簡単になります。ローカル環境にMySQLをインストールせずに、手軽にデータベースを利用できるのも大きなメリットです。本記事では、Java開発向けにDockerを活用したMySQL環境の構築方法を詳しく解説します。
DockerでMySQL環境を構築するメリット
Dockerを活用すれば、MySQL環境を手軽に構築でき、開発やテストの効率が大幅に向上します。ローカル環境に直接MySQLをインストールする必要がなく、環境の違いによるトラブルを回避できるのも大きなメリットです。また、コンテナ化することで、どのOSでも統一された環境を再現でき、チーム開発やCI/CDの運用にも適しています。ここでは、Dockerを使ってMySQL環境を構築するメリットについて詳しく解説します。
Dockerを使うと何が便利なのか?
- 環境構築が簡単
- OSに依存しない
- 再現性の高い環境を作れる
ローカルインストールとDockerの比較
項目 | ローカルインストール | Docker |
---|---|---|
セットアップの手間 | 高い(パッケージ管理が必要) | 低い(コンテナ起動のみ) |
環境の再現性 | 低い(設定が環境依存) | 高い(イメージで統一) |
削除と再構築 | 面倒(手動アンインストール) | 簡単(コンテナ削除・作成) |
Docker管理のチートシート
Dockerは、これまでの開発環境を一変させるほどパワフルな環境構築ツールです。 アプリケーションの動作環境を手軽に構築・共有できるため、近年の開発現場ではほぼ必須の技術となっています。
ただし、Dockerの概念や仕組みを完全に理解するには、それこそ本一冊分の知識が必要になるほど膨大な内容になります。本記事では、Dockerの詳細な説明は触れる程度に留め、Dockerを使ったMySQL環境の構築と管理に焦点を当てて解説します。
もしDockerそのものに興味がある方は、Kubernetes や コンテナオーケストレーション技術 について学ぶことをおすすめします。 また、AWSやGCPなどのクラウド環境では、Dockerの技術は非常に重宝されており、Dockerエンジニアの需要が高く、求人も多い 状況です。
このチートシートを活用しながら、Dockerの基本操作を学び、開発環境を効率的に管理できるようになりましょう!
Dockerの基本情報
用途 | コマンド | 説明 |
---|---|---|
Dockerのバージョン確認 | docker --version | インストールされているDockerのバージョンを表示 |
Dockerが正常に動作しているか確認 | docker run hello-world | テスト用のコンテナを実行し、動作確認 |
Dockerの全体情報を表示 | docker info | インストールされたDockerの設定やリソース情報を表示 |
Docker環境のセットアップ
用途 | コマンド | 説明 |
---|---|---|
Dockerのインストール(Ubuntu) | sudo apt install docker.io | UbuntuにDockerをインストール |
Dockerを起動 | sudo systemctl start docker | Dockerデーモンを開始 |
Dockerを有効化(再起動時も自動起動) | sudo systemctl enable docker | DockerをOS起動時に自動実行 |
イメージの管理
用途 | コマンド | 説明 |
---|---|---|
イメージを検索 | docker search mysql | Docker Hub から「mysql」を検索 |
イメージをダウンロード | docker pull mysql:latest | 最新のMySQLイメージを取得 |
ローカルのイメージ一覧を表示 | docker images | ダウンロード済みのイメージを一覧表示 |
コンテナの管理
用途 | コマンド | 説明 |
---|---|---|
コンテナを作成&起動 | docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=root -d mysql | MySQLコンテナを作成し、起動 |
コンテナを停止 | docker stop mysql-container | コンテナを安全に停止 |
コンテナを再起動 | docker start mysql-container | 停止したコンテナを再起動 |
コンテナ一覧を表示 | docker ps -a | 起動中&停止中のコンテナを一覧表示 |
ネットワークの管理
用途 | コマンド | 説明 |
---|---|---|
既存のネットワークを表示 | docker network ls | 作成済みのDockerネットワーク一覧を表示 |
新しいネットワークを作成 | docker network create mynetwork | 名前「mynetwork」の新規ネットワークを作成 |
コンテナをネットワークに接続 | docker network connect mynetwork mysql-container | MySQLコンテナを「mynetwork」に追加 |
ボリュームの管理
用途 | コマンド | 説明 |
---|---|---|
既存のボリュームを表示 | docker volume ls | 作成済みのボリューム一覧を表示 |
新しいボリュームを作成 | docker volume create mysql_data | 「mysql_data」という名前のボリュームを作成 |
ボリュームをコンテナにマウント | docker run -v mysql_data:/var/lib/mysql mysql | MySQLのデータを永続化するためにボリュームをマウント |
Dockerのログ・デバッグ
用途 | コマンド | 説明 |
---|---|---|
コンテナのログを表示 | docker logs mysql-container | MySQLコンテナのログを確認 |
リアルタイムでログを監視 | docker logs -f mysql-container | リアルタイムでログを確認( -f オプション) |
コンテナ内に入る | docker exec -it mysql-container bash | MySQLコンテナにアクセスし、内部でコマンドを実行 |
まとめ
- Dockerの基本操作を理解することで、より効率的にコンテナを管理できる
- コンテナの起動・停止、ネットワーク、ボリュームの管理は開発時に必須
- ログの確認とデバッグを活用し、問題発生時に迅速に対応する
このチートシートを活用して、Dockerをスムーズに管理しましょう! 🚀
DockerとMySQLの基本設定
Dockerを利用すれば、MySQLの環境構築が驚くほど簡単になります。従来のようにローカル環境にMySQLをインストールして設定する必要がなく、Dockerコンテナを使うことでOSに依存せず、統一された開発環境を素早く構築できます。本セクションでは、Dockerのインストール手順から、MySQLコンテナの起動方法までを詳しく解説します。
WindowsでDockerをインストールする手順
Dockerは、コンテナを利用した開発環境を簡単に構築できるツールです。Windowsでは、Docker Desktop をインストールすることで、手軽にDockerを利用できます。本記事では、公式サイトからDocker Desktopをダウンロードし、インストールする方法を詳しく解説します。なお、Windows 10/11 の場合、WSL2(Windows Subsystem for Linux) または Hyper-V を利用する設定が必要になりますので、事前に確認しておきましょう。
1. Docker公式サイトにアクセス
以下のURLからDocker Desktop for Windowsをダウンロードします。
👉 Docker公式サイト

2. Windows用のDocker Desktopをダウンロード
- 「Download for Windows」をクリック
- ダウンロードされた .exe ファイルを実行
3. Docker Desktopをインストール
- インストールウィザードの指示に従い「Install」をクリック
- インストール完了後、PCを再起動
4. Docker Desktopを起動
- Windowsのスタートメニューから「Docker Desktop」を開く
- 起動後、Dockerのクジラアイコン🐳 が表示される
5. Dockerが正常に動作するか確認
ターミナル(PowerShell または コマンドプロンプト)で以下のコマンドを実行。
docker --version
- バージョン情報が表示されればインストール成功
MacでDockerをインストールする手順
Dockerを利用すると、ローカル環境にソフトウェアをインストールせずに、簡単に開発環境を構築できます。Macでは Docker Desktop をインストールすることで、手軽にDockerを利用できます。本記事では、公式サイトからDocker Desktopをダウンロードし、インストールする方法を解説します。なお、Macには Apple Silicon(M1/M2) と Intelプロセッサ の2種類があるため、自分のMacに適したバージョンを選ぶ必要があります。
1. Docker公式サイトにアクセス
以下のURLからDocker Desktop for Macをダウンロードします。
👉 Docker公式サイト

2. Mac用のDocker Desktopをダウンロード
- 「Download for Mac (Apple Silicon/Intel)」をクリック
- ダウンロードされた .dmg ファイルを開く
3. Docker Desktopをインストール
- インストールウィンドウが開いたら「Docker.app」を「Applications」フォルダにドラッグ
4. Docker Desktopを起動
- 「Applications」フォルダから「Docker.app」を開く(初回起動時のみ警告が表示される)
- Docker Desktopの利用規約が表示される(個人利用なので「Accept」でOKです)
- Docker Desktopの初回セットアップ画面(「Use recommended settings」を選んで「Finish」をクリック)
もし リソース(CPU・メモリ使用量)をカスタマイズしたい なら「Use advanced settings」を選ぶのもアリですが、後からでも変更可能なので 最初は「recommended settings」でOK です! - Docker Desktopの基本メニューが表示される(基本メニューの内容については後述)
- 起動後、メニューバーにクジラアイコン🐳 が表示される
5. Dockerが正常に動作するか確認
ターミナルを開き、以下のコマンドを実行。
docker --version
- バージョン情報が表示されればインストール成功
LinuxでDockerをインストールする手順
Linuxでは、Dockerをネイティブ環境で動作させることができ、仮想化のオーバーヘッドが少ないため、軽量で高速なコンテナ環境を構築できます。本記事では、公式リポジトリを利用してDockerをインストールし、基本的な設定を行う方法を解説します。なお、ディストリビューションによってインストール方法が異なるため、Ubuntu / Debian系、CentOS / RHEL系 など、それぞれの環境に適した手順を選択してください。
1. Docker公式サイトにアクセス
以下のURLからLinux用のDockerをダウンロードします。
👉 Docker公式サイト(Linux向け)

2. ディストリビューションに応じたDockerを選択
- 「Download for Linux」をクリック
3. Dockerをインストール
以下のコマンドを実行(例: Ubuntu)
sudo apt install docker.io
4. Dockerデーモンを起動
以下のコマンドを実行。
sudo systemctl start docker
5. Dockerが正常に動作するか確認
以下のコマンドを実行。
docker --version
- バージョン情報が表示されればインストール成功
6. 一般ユーザーでDockerを実行できるようにする(オプション)
以下のコマンドで現在のユーザーを docker グループに追加。
sudo usermod -aG docker $(whoami)
- 追加後、一度ログアウトして再ログインすれば反映される
Docker Desktopの基本メニュー
Docker Desktopには、コンテナの管理やイメージの操作を簡単に行える直感的なメニューが用意されています。各メニューを活用することで、コンテナの起動・停止、イメージの管理、データの永続化、ビルドの実行など、開発に必要な操作をスムーズに行うことができます。本記事では、Docker Desktopの主要なメニューとその役割について解説します。

Docker Desktopの基本メニュー
- Containers(コンテナ管理)
- 実行中のコンテナを一覧表示し、起動・停止・削除が可能。 - Images(イメージ管理)
- ダウンロード済みのDockerイメージを管理し、新しいコンテナを作成できる。 - Volumes(ボリューム管理)
- コンテナのデータを永続化するためのストレージ領域を管理。 - Builds(ビルド管理)
- Dockerfileを使用したカスタムイメージのビルドを管理。 - Docker Hub
- 公式のDocker Hubと連携し、パブリック/プライベートリポジトリを管理。 - Docker Scout(セキュリティ分析)
- コンテナの脆弱性をチェックし、セキュリティ対策を提案。 - Extensions(拡張機能)
- 追加のプラグインをインストールしてDockerをカスタマイズ可能。
Docker環境の確認とコンテナ動作チェック

Dockerを開発環境として活用するために、これから 2つのコンテナを導入 します。
1つ目は、Dockerが正常に動作しているかを確認するためのテスト用コンテナ です。
2つ目は、MySQLのデータベース環境を構築するためのミドルウェアコンテナ です。
まずは、Dockerが正しくインストールされているかを確認し、その後、MySQLのコンテナを起動してデータベース環境をセットアップします。起動確認用のコンテナは確認終了後に削除し、最終的にMySQLコンテナのみを永続化して運用 していきます。
- 1. Dockerのバージョンを確認
まず、Dockerが正しくインストールされているか確認するため、以下のコマンドを実行します。docker --version
以下のようにDockerのバージョンが表示されれば、インストール成功です。Docker version 27.5.1, build g9ee40f
- 2. Hello Worldコンテナ(1つ目)を実行して動作確認
Dockerの基本機能が動作しているか確認するため、以下のコマンドを実行します。docker run hello-world
成功すると、「Hello from Docker!」と表示され、コンテナが正しく起動・実行されたことが確認できます。 - 3. Docker環境の詳細情報を確認
Dockerの設定やリソースの情報を確認するため、以下のコマンドを実行します。docker info
CPUやメモリの割り当て、ストレージ情報などが表示されます。 - 4. MySQLコンテナ(2つ目)を起動してテスト
Dockerを使ってMySQLのコンテナを起動し、正しく動作するか確認します。docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306 mysql:latest
実行後、以下のコマンドでコンテナが正常に起動しているか確認できます。docker ps
MySQLのコンテナが一覧に表示されていれば、正常に動作しています。
Hello World コンテナを削除する方法
確認ように使用した「hello-world」コンテナは、残しておいても特に問題はありませんが、削除する場合は下記の手順で削除できます。
- 方法①: 手動で削除
docker rm hello-world
これで不要なコンテナを削除できます。 - 方法②: 実行後に自動削除(--rm オプションを使う)
docker run --rm hello-world
このオプションをつければ、「終了したら即削除」されます。
Dockerの仕組みとMySQLコンテナの動作原理
Dockerは、後述の「Docker Hub」からコンテナイメージをダウンロードして、コンテナ仮想化技術を利用してアプリケーションを実行する仕組みです。しかし、Win/MacではDockerが直接動作するわけではなく、内部的にLinuxの仮想マシン(VM)が動いており、その上でコンテナが実行 されています。
- Win/MacはLinuxカーネルを持たないため、Docker Desktopは内部的に軽量なLinux VMを起動している。
- コンテナ(MySQLなど)は、このLinux VMの上で動作し、windowsOS/macOSとは別の環境になっている。
- ポートフォワード(例:3306:3306)を設定することで、Win/MacからMySQLコンテナへ接続できる。

MacとWindowsのDockerの動作比較
MacとWindowsでは、Dockerを動かす方法が異なります。特にWindowsでは、WSL2モードとHyper-Vモードの2つの方法があります。
Mac | Windows(WSL2モード) | Windows(Hyper-Vモード) | |
---|---|---|---|
ホストOS | macOS | Windows | Windows |
Linuxカーネルの提供方法 | Linux VM(Docker Desktop内蔵) | WSL2のLinuxカーネル | Hyper-VのLinux VM |
Docker Engineの動作環境 | Linux VM内で動作 | WSL2(Linuxカーネル)上で動作 | Hyper-VのVM内で動作 |
パフォーマンス | 良好 | 高速 & 省メモリ(推奨) | 比較的重い |
メリット | Mac上でDockerが動かせる | Windows上でネイティブなLinux環境が動く | 追加のセットアップ不要(ただし重い) |
デメリット | Linux VMが必要 | WSL2が有効でないと使えない | Hyper-Vが必要で、Windows Homeでは利用制限あり |
- MacとWindows(WSL2モード)は、どちらも「内部的なLinux環境」でDockerを動かしているので、動作原理はほぼ同じ!
- WindowsのHyper-Vモードは、MacのDocker Desktop(Linux VMを使用)と同じ動作方式。
- 現在の推奨環境は「WindowsならWSL2を利用、MacならDocker Desktop(Linux VM)」!
🔍 現在のDocker環境
現在のコンテナ情報は下記の通り。
- Docker Engine: Win/MacのDocker DesktopがLinux VM内で動作
- MySQLコンテナ: Linux VM内で実行中(Docker GUIでも確認可能)
- ネットワーク: -p 3306:3306 を設定したことで、Macからアクセス可能
設定項目 | 値(デフォルト) | 説明 |
---|---|---|
コンテナ名 | mysql-container | コンテナを識別するための名前 |
MySQLバージョン | latest(最新版) | 公式の最新MySQLイメージを使用 |
データベース名 | なし(初期状態) | デフォルトではデータベースは作成されない |
ユーザー名 | root | MySQLの管理ユーザー(スーパーユーザー) |
パスワード | root | 環境変数 MYSQL_ROOT_PASSWORD=root で設定 |
ポート | 3306:3306 | ローカルの3306ポートとコンテナの3306ポートを接続 |
データ永続化 | mysql_data | ボリュームを /var/lib/mysql にマウント |
ネットワーク | デフォルト | 特に指定しない場合は Docker のブリッジネットワークを使用 |
⚠️ 注意点:コンテナのデータはデフォルトでは保存されない
現在、MySQLコンテナは動作しているが、もし docker stop mysql-container や docker rm mysql-container を実行すると、すべてのデータが消えてしまう。
💾 データを永続化する方法
データを永続化するには、ボリュームを作成し、MySQLのデータディレクトリを紐づける。
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306 -v mysql_data:/var/lib/mysql mysql:latest
🔄 MySQLコンテナを自動起動させる
Dockerを再起動するとコンテナが停止するため、常に起動するよう設定する。
docker update --restart always mysql-container
これでWin/Macを再起動しても、Dockerが起動すればMySQLコンテナも自動的に立ち上がる。
Docker Hubとは?

Dockerは、コンテナイメージを管理・配布するための公式リポジトリ「Docker Hub」を利用します。 Docker Hubには、MySQLやPostgreSQL、Nginxなどのミドルウェアが登録されており、誰でも簡単にダウンロードして利用可能 です。
例えば、MySQLの公式イメージは以下のようにして取得・実行できます。
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306 mysql:latest
このコマンドを実行すると、Dockerは自動的に Docker Hub から MySQL の公式イメージを取得し、コンテナを作成します。
Docker Hubでイメージを検索する方法
Dockerでは、必要なソフトウェアをコンテナとして簡単に利用できます。しかし、どのようなイメージが利用可能なのかを知るには、Docker Hubで検索するのが最も便利です。
Docker Hubには、MySQLやPostgreSQL、Nginxなどの公式イメージをはじめ、さまざまなコンテナイメージが公開 されており、開発環境のセットアップを大幅に簡略化できます。
ここでは、Docker Hubで目的のイメージを検索する方法を解説します。
🔍 1. Webで検索する
Docker Hub の公式サイトで検索できます。
検索バーに「mysql」や「nginx」などのキーワードを入力すると、関連する公式イメージが表示されます。
🔍 2. コマンドラインで検索する
ターミナルで以下のコマンドを実行すると、利用可能なイメージを検索できます。
docker search <キーワード>
例えば、MySQL関連のイメージを検索したい場合は以下のように実行します。
docker search mysql
検索結果には、MySQLの公式イメージや、関連するカスタムイメージが表示されます。
Docker Hubで提供されている主なイメージ
用途 | イメージ名 | 説明 |
---|---|---|
データベース | mysql | MySQLの公式コンテナ |
postgres | PostgreSQLの公式コンテナ | |
redis | インメモリデータベース Redis | |
Webサーバー | nginx | 軽量で高速なWebサーバー |
httpd | Apache HTTP サーバー | |
プログラミング言語 | python | Pythonの実行環境(複数バージョンあり) |
node | Node.js の実行環境 | |
openjdk | Java(OpenJDK)実行環境 | |
CI/CDツール | jenkins | Jenkinsの公式コンテナ |
OSベースイメージ | ubuntu | Ubuntuの公式イメージ |
alpine | 軽量Linuxディストリビューション |
Docker Hubの仕組み
Docker Hubは、世界中の開発者が作成したコンテナイメージを共有・管理できるプラットフォームです。
- 誰かが「MySQLの環境」を作成 → Docker Hubにアップロード
- 世界中の開発者が 「docker run mysql」 ですぐに環境を利用可能!
- 公式イメージ(例: mysql, nginx)は、Dockerが品質管理している
公式イメージは「_」がついたURLになっており、例えば MySQL の公式イメージは以下のURLから確認できます。
Docker Hubを活用すれば、開発環境を手軽にセットアップできる ため、開発効率が大幅に向上します! 🚀
JavaアプリからMySQLに接続する(Mavenなし)
JavaアプリケーションからMySQLデータベースに接続するために、JDBC(Java Database Connectivity)を使用します。本記事では、Mavenを使用せずに、手動でMySQL JDBCドライバを追加して接続する方法を解説します。
MySQL JDBC ドライバのダウンロード
MySQLに接続するためには、JDBCドライバ( mysql-connector-java)が必要です。以下の公式サイトからダウンロードします。
▶ MySQL Connector/J ダウンロードページ(公式サイト)
ダウンロード時は、「Platform Independent」 を選択し、「Download」ボタンを押してください。
次の画面で「No thanks, just start my download.」をクリックすると、サインアップせずにダウンロードできます。
JDBCドライバとは?
JDBC(Java Database Connectivity)ドライバは、Javaアプリケーションとデータベースを接続するための橋渡し をするソフトウェアです。 JavaがMySQLやPostgreSQLなどのデータベースとやり取りするために、JDBCドライバを通じてSQLクエリを送受信します。
JDBCドライバの役割
- Javaからデータベースに接続
DriverManager.getConnection() を使って、データベースとの通信を確立 - SQLクエリの送信・データ取得
JavaからSQL文を実行し、データを取得・更新 - 異なるデータベース間の互換性を確保
MySQL、PostgreSQL、Oracleなど、異なるデータベースごとに専用のJDBCドライバが用意されている
JDBCドライバの種類
種類 | 説明 | 代表例 |
---|---|---|
Type 1(JDBC-ODBCブリッジ) | ODBCドライバを介してデータベースと接続する(古い方式) | 非推奨 |
Type 2(ネイティブAPIドライバ) | OSごとのネイティブDBライブラリを使用(専用設定が必要) | Oracle OCI |
Type 3(ネットワークプロトコルドライバ) | Javaプログラムが中間サーバーを通じてDBに接続 | JDBCネットワークドライバ |
Type 4(純粋Javaドライバ) | 直接データベースと通信できる純粋なJavaドライバ | MySQL Connector/J、PostgreSQL JDBC |
💡 通常、Type 4 の「純粋Javaドライバ」が推奨される!
MySQL用の mysql-connector-java も Type 4 JDBCドライバ!
MySQLのJDBCドライバ(MySQL Connector/J)
MySQLに接続するには、「MySQL Connector/J」 という専用のJDBCドライバが必要!
- 公式サイトからダウンロード
▶ MySQL Connector/J ダウンロードページ(公式サイト) - Mavenを使用する場合、以下の依存関係を pom.xml に追加するだけ
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
JDBCドライバを正しく設定すれば、JavaからMySQLに簡単にアクセスできるようになります! 🚀
Eclipse に JAR ファイルを追加
ダウンロードした mysql-connector-java-8.0.x.jar を Eclipse のプロジェクトに追加します。
- 「TodoApp」プロジェクトを右クリックし、「プロパティ」を開く。
- 左のリストから「Javaのビルド・パス」を選択。
- 「ライブラリー」タブをクリック。
- 「外部アーカイブの追加」ボタンをクリック。
- ダウンロードした mysql-connector-java-8.0.x.jar を選択。
- 「適用して閉じる」をクリック。
JARファイルとは?
JAR(Java ARchive)ファイルは、Javaのクラスやリソースファイルをまとめた圧縮ファイル です。 Javaプログラムのライブラリやフレームワーク、実行可能なアプリケーションを一つのファイルにまとめるために使用されます。
JARファイルの主な用途
- Javaのライブラリとして利用
JDBCドライバ(mysql-connector-java.jar)のように、外部ライブラリを追加するために使われる - Javaアプリケーションの配布
すべてのクラスとリソースをJARにまとめて、簡単に配布・実行できる - JavaのフレームワークやAPIの提供
Spring、Hibernate などのフレームワークはJARファイルとして提供される
JARファイルの作成と実行
🔹 JARファイルの作成
Javaのソースコードをコンパイルし、JARファイルを作成するには以下のコマンドを使用します。
javac MyApp.java // Javaのソースコードをコンパイル
jar cvf MyApp.jar MyApp.class // クラスファイルをJARにパッケージ化
🔹 JARファイルの実行
JARファイルが実行可能な場合、以下のコマンドで実行できます。
java -jar MyApp.jar
JARがライブラリとして使用される場合は、クラスパス( -cp)を指定して実行します。
java -cp mysql-connector-java.jar MyApp
JavaでMySQLに接続するサンプルコード
以下のコードは、JavaアプリケーションからMySQLデータベースに接続し、 users テーブルのデータを取得するサンプルです。
前回の記事のServletファイル作成手順を参照して「MySQLConnection」サーブレットファイルを作成してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | package com.example.todo; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class MySQLConnection { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/sampledb"; String user = "root"; String password = "root"; // try-with-resources を正しく使用 try (Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM users")) { // whileブロックを適切に記述 while (rs.next()) { System.out.println(rs.getString("name")); } } catch (Exception e) { e.printStackTrace(); } } } |
Servletファイルの作成手順については、前回の記事で詳しく解説していますので、そちらをご参照ください。
MySQLのデータベース作成
実行前に、接続先のデータベースが存在することを確認します。もし sampledb がない場合、以下の手順で作成してください。
- MySQLコンテナにログイン
docker exec -it mysql-container mysql -u root -p
- データベースの作成
CREATE DATABASE sampledb;
- usersテーブルの作成
USE sampledb;
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100)); - サンプルデータの追加
INSERT INTO users (name) VALUES ('Alice'), ('Bob'), ('Charlie');
Docker MySQLコンテナへ接続
MySQLコンテナへの接続が成功すると、エクリプスのコンソールへMySQLから取得したユーザー名が出力されます。

MySQLコンテナの管理方法
DockerでMySQLを運用する際、コンテナの起動・停止、データの永続化、ログやエラーの確認が重要になります。本記事では、MySQLコンテナの適切な管理方法について解説します。
コンテナの起動・停止
MySQLコンテナは、Dockerコマンドを使用して手動で起動・停止することができます。
🔹 MySQLコンテナを起動する
docker start mysql-container
このコマンドを実行すると、 mysql-container という名前のコンテナが起動します。
🔹 MySQLコンテナを停止する
docker stop mysql-container
このコマンドを実行すると、 mysql-container を安全に停止できます。
🔹 起動中のコンテナを確認する
docker ps
現在動作しているコンテナの一覧が表示されます。
🔹 すべてのコンテナ(停止済みも含む)を確認
docker ps -a
停止したコンテナも含め、すべてのコンテナを一覧表示します。
データの永続化設定
Dockerコンテナはデフォルトでは一時的なストレージを使用するため、コンテナを削除するとMySQLデータも失われてしまいます。データを永続化するためには、ボリューム を設定します。
🔹 ボリュームを利用したMySQLコンテナの作成
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306 -v mysql_data:/var/lib/mysql mysql:latest
このコマンドでは、 -v mysql_data:/var/lib/mysql を指定することで、MySQLデータをホスト側のボリューム mysql_data に保存し、コンテナ停止後もデータを保持できます。
🔹 既存のMySQLコンテナのデータを永続化する
すでに作成したMySQLコンテナのデータを永続化したい場合、コンテナのデータディレクトリを手動でバックアップし、新しいコンテナでマウントできます。
docker cp mysql-container:/var/lib/mysql ./mysql_backup
このコマンドで、コンテナ内のデータをホスト側にコピーし、新しいコンテナでボリュームとしてマウントできます。
MySQLのログやエラーチェック
MySQLのエラーログやコンテナの動作ログを確認することで、問題発生時に迅速な対応が可能になります。
🔹 MySQLコンテナのログを確認する
docker logs mysql-container
このコマンドを実行すると、MySQLコンテナの標準出力に記録されたログが表示されます。
🔹 リアルタイムでログを監視する
docker logs -f mysql-container
オプション -f をつけることで、リアルタイムでログを監視できます。
🔹 MySQLのエラーログを確認する
MySQLのエラーログは通常、 /var/log/mysql/error.log に記録されます。コンテナ内で以下のコマンドを実行すると、エラーログを確認できます。
docker exec -it mysql-container cat /var/log/mysql/error.log
この管理方法を活用すれば、MySQLコンテナを安全かつ効率的に運用できます! 🚀