Java の基礎知識

【Javaの基礎知識】DockerでMySQL環境を構築!

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.ioUbuntuにDockerをインストール
Dockerを起動 sudo systemctl start dockerDockerデーモンを開始
Dockerを有効化(再起動時も自動起動) sudo systemctl enable dockerDockerをOS起動時に自動実行

イメージの管理

用途コマンド説明
イメージを検索 docker search mysqlDocker Hub から「mysql」を検索
イメージをダウンロード docker pull mysql:latest最新のMySQLイメージを取得
ローカルのイメージ一覧を表示 docker imagesダウンロード済みのイメージを一覧表示

コンテナの管理

用途コマンド説明
コンテナを作成&起動 docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=root -d mysqlMySQLコンテナを作成し、起動
コンテナを停止 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-containerMySQLコンテナを「mynetwork」に追加

ボリュームの管理

用途コマンド説明
既存のボリュームを表示 docker volume ls作成済みのボリューム一覧を表示
新しいボリュームを作成 docker volume create mysql_data「mysql_data」という名前のボリュームを作成
ボリュームをコンテナにマウント docker run -v mysql_data:/var/lib/mysql mysqlMySQLのデータを永続化するためにボリュームをマウント

Dockerのログ・デバッグ

用途コマンド説明
コンテナのログを表示 docker logs mysql-containerMySQLコンテナのログを確認
リアルタイムでログを監視 docker logs -f mysql-containerリアルタイムでログを確認( -f オプション)
コンテナ内に入る docker exec -it mysql-container bashMySQLコンテナにアクセスし、内部でコマンドを実行

まとめ

  • 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の主要なメニューとその役割について解説します。

イメージは(筆者の環境がMac環境なため)Mac版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」コンテナは、残しておいても特に問題はありませんが、削除する場合は下記の手順で削除できます。

  1. 方法①: 手動で削除

    docker rm hello-world

    これで不要なコンテナを削除できます。
  2. 方法②: 実行後に自動削除(--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つの方法があります。

MacWindows(WSL2モード)Windows(Hyper-Vモード)
ホストOSmacOSWindowsWindows
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イメージを使用
データベース名なし(初期状態)デフォルトではデータベースは作成されない
ユーザー名rootMySQLの管理ユーザー(スーパーユーザー)
パスワードroot環境変数 MYSQL_ROOT_PASSWORD=root で設定
ポート3306:3306ローカルの3306ポートとコンテナの3306ポートを接続
データ永続化mysql_dataボリュームを /var/lib/mysql にマウント
ネットワークデフォルト特に指定しない場合は Docker のブリッジネットワークを使用

⚠️ 注意点:コンテナのデータはデフォルトでは保存されない

現在、MySQLコンテナは動作しているが、もし docker stop mysql-containerdocker 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 の公式サイトで検索できます。

Docker Hub(公式サイト)

検索バーに「mysql」や「nginx」などのキーワードを入力すると、関連する公式イメージが表示されます。

🔍 2. コマンドラインで検索する

ターミナルで以下のコマンドを実行すると、利用可能なイメージを検索できます。

docker search <キーワード>

例えば、MySQL関連のイメージを検索したい場合は以下のように実行します。

docker search mysql

検索結果には、MySQLの公式イメージや、関連するカスタムイメージが表示されます。

Docker Hubで提供されている主なイメージ

用途イメージ名説明
データベース mysqlMySQLの公式コンテナ
postgresPostgreSQLの公式コンテナ
redisインメモリデータベース Redis
Webサーバー nginx軽量で高速なWebサーバー
httpdApache HTTP サーバー
プログラミング言語 pythonPythonの実行環境(複数バージョンあり)
nodeNode.js の実行環境
openjdkJava(OpenJDK)実行環境
CI/CDツール jenkinsJenkinsの公式コンテナ
OSベースイメージ ubuntuUbuntuの公式イメージ
alpine軽量Linuxディストリビューション

Docker Hubの仕組み

Docker Hubは、世界中の開発者が作成したコンテナイメージを共有・管理できるプラットフォームです。

  • 誰かが「MySQLの環境」を作成 → Docker Hubにアップロード
  • 世界中の開発者が 「docker run mysql」 ですぐに環境を利用可能!
  • 公式イメージ(例: mysql, nginx)は、Dockerが品質管理している

公式イメージは「_」がついたURLになっており、例えば MySQL の公式イメージは以下のURLから確認できます。

MySQL 公式 Docker イメージ

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ドライバが必要!

<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 のプロジェクトに追加します。

  1. 「TodoApp」プロジェクトを右クリックし、「プロパティ」を開く。
  2. 左のリストから「Javaのビルド・パス」を選択。
  3. ライブラリー」タブをクリック。
  4. 外部アーカイブの追加」ボタンをクリック。
  5. ダウンロードした mysql-connector-java-8.0.x.jar を選択。
  6. 適用して閉じる」をクリック。

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」サーブレットファイルを作成してください。

Servletファイルの作成手順については、前回の記事で詳しく解説していますので、そちらをご参照ください。

MySQLのデータベース作成

実行前に、接続先のデータベースが存在することを確認します。もし sampledb がない場合、以下の手順で作成してください。

  1. MySQLコンテナにログイン

    docker exec -it mysql-container mysql -u root -p

  2. データベースの作成

    CREATE DATABASE sampledb;

  3. usersテーブルの作成

    USE sampledb;
    CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100));

  4. サンプルデータの追加

    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コンテナを安全かつ効率的に運用できます! 🚀

よく読まれている記事

1

IT入門シリーズ 🟢 STEP 1: ITの基礎を知る(ITとは何か?)├─【IT入門】ITとは?仕組みや活用方法をわかりやすく解説├─【IT入門】インターネットとは?仕組み・使い方を ...

2

「私たちが日々利用しているスマートフォンやインターネット、そしてスーパーコンピュータやクラウドサービス――これらの多くがLinuxの力で動いていることをご存じですか?無料で使えるだけでなく、高い柔軟性 ...

3

Shellスクリプト基礎知識(全13記事+2) ├─【Shellの基礎知識】Shellスクリプト入門|初心者が押さえる基本├─【Shellの基礎知識】変数と特殊変数の使い方|初心者向け解説├─【She ...

-Java の基礎知識