カテゴリ: CodeIgniter 更新日: 2026/07/24

CodeIgniterとDockerでMySQLを連携!初心者向け環境構築完全ガイド

CodeIgniterとMySQLをDockerで連携する設定例
CodeIgniterとMySQLをDockerで連携する設定例

先生と生徒の会話形式で理解しよう

生徒

PHPのフレームワークであるCodeIgniterを使って開発を始めたいのですが、Dockerを使うと何が嬉しいのですか?

先生

Dockerを使うと、パソコンの中に仮想的な専用の部屋を作って、そこでCodeIgniterやMySQLなどの環境を安全に動かせるようになります。

生徒

なるほど。でも、CodeIgniterとMySQLをどうやって繋げればいいのでしょうか?

先生

Dockerの設定ファイルであるdocker-compose.ymlを使うことで、簡単に二つを連携させることができます。一緒に設定の流れを見ていきましょう!

1. DockerとCodeIgniterの基本を理解しよう

1. DockerとCodeIgniterの基本を理解しよう
1. DockerとCodeIgniterの基本を理解しよう

まず、Docker(ドッカー)という言葉を聞いたことはありますか?これは、パソコンの中に「コンテナ」と呼ばれる小さな箱を作り、その中で必要なプログラムだけを動かす技術です。この仕組みを使うと、あなたのパソコンの設定が汚れることなく、いつでも綺麗な状態でCodeIgniterというPHPフレームワークを動かせます。

PHPフレームワークとは、家を建てるときに使う「便利な骨組み」のようなものです。CodeIgniterは、その骨組みの中でも非常にシンプルで、初心者でも学びやすいことが特徴です。MySQLは、データを保存するための「データベース」という倉庫です。この倉庫とPHPを繋ぐことが、Webアプリケーション開発の第一歩になります。

2. Docker環境構築に必要な準備とファイル構成

2. Docker環境構築に必要な準備とファイル構成
2. Docker環境構築に必要な準備とファイル構成

Dockerで環境を作るには、いくつかの設定ファイルが必要です。まずは、あなたのパソコンの中にフォルダを作り、その中に以下のファイルを用意しましょう。

  • docker-compose.yml(Dockerの設定をまとめた司令塔のようなファイル)
  • Dockerfile(PHP環境を作るための設計図)

この2つのファイルを用意することで、CodeIgniterが動くWebサーバーと、MySQLというデータ倉庫を同時に立ち上げることができます。フォルダ分けをしっかり行うことで、後からプログラムを修正するときも迷子にならずに済みます。

3. docker-compose.ymlの設定例

3. docker-compose.ymlの設定例
3. docker-compose.ymlの設定例

次に、司令塔となるdocker-compose.ymlの中身を見てみましょう。このファイルには、「どんなサーバーを、どうやって動かすか」という指示を書きます。


version: '3'
services:
  app:
    build: .
    volumes:
      - .:/var/www/html
  db:
    image: mysql:8.0
    environment:
      MYSQL_DATABASE: my_database
      MYSQL_ROOT_PASSWORD: password

このコードの中のservicesという部分で、アプリケーション本体とデータベースを定義しています。environmentという項目では、データベースに接続するためのパスワードなどの設定を記述します。これにより、プログラムとデータベースが安全に通信できるようになるのです。

4. CodeIgniterとMySQLの接続設定

4. CodeIgniterとMySQLの接続設定
4. CodeIgniterとMySQLの接続設定

Dockerの設定ができたら、次はCodeIgniterの中からMySQLにアクセスするための設定を行います。CodeIgniterには、データベースに接続するための設定ファイルが最初から用意されています。


public $default = [
    'DSN'      => '',
    'hostname' => 'db',
    'username' => 'root',
    'password' => 'password',
    'database' => 'my_database',
    'DBDriver' => 'MySQLi',
];

ここで重要なのがhostnameです。通常はlocalhostと書くことが多いのですが、Docker環境では、先ほど作成したdocker-compose.ymlで指定したサービス名(この例ではdb)を指定します。これでCodeIgniterが正しくデータベースを見つけられるようになります。

5. コンテナを立ち上げて確認しよう

5. コンテナを立ち上げて確認しよう
5. コンテナを立ち上げて確認しよう

設定ファイルが完成したら、いよいよコマンドを使ってシステムを起動します。ターミナル(黒い画面)を開いて、プロジェクトのフォルダに移動し、以下のコマンドを入力してください。


docker-compose up -d

-dというオプションをつけることで、バックグラウンドで静かにプログラムを動かすことができます。起動に成功したら、ブラウザを開いてhttp://localhost:8080などにアクセスしてみましょう。CodeIgniterのようこそ画面が表示されれば、環境構築の成功です。

6. データベース接続をテストするコード

6. データベース接続をテストするコード
6. データベース接続をテストするコード

最後に、本当にCodeIgniterからMySQLにデータが送れているか確認してみましょう。簡単な確認用プログラムを作成します。


$db = \Config\Database::connect();
if ($db->connID) {
    echo "データベース接続に成功しました!";
} else {
    echo "接続に失敗しました。";
}

このように、接続情報を管理するクラスを使って、成功したかどうかを表示させるのが一般的です。もしエラーが出る場合は、パスワードやデータベース名がdocker-compose.ymlと一致しているか、もう一度見直してみましょう。一つずつ丁寧に確認することが、プログラミング習得への最短ルートです。

カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのルートとコントローラを対応付ける方法(名前付きルート)を初心者向けに解説
New2
Symfony
Symfonyで画像やファイルをアップロードする時のバリデーション完全ガイド!初心者でもわかる入力チェックの基本
New3
Laravel
Laravelで言語切替UIを作る!多言語対応(ローカリゼーション)実践ガイド
New4
CodeIgniter
CodeIgniterでローカル開発環境を構築する方法!初心者向け完全ガイド
人気記事
No.1
Java&Spring記事人気No1
CodeIgniter
CodeIgniterのキャッシュ管理を完全ガイド!初心者でもわかるメリットと注意点
No.2
Java&Spring記事人気No2
Laravel
Laravelのプロジェクト構造を理解しよう!初心者向けディレクトリ解説
No.3
Java&Spring記事人気No3
Symfony
Symfony学習に役立つおすすめドキュメント・教材・リソース一覧【初心者向け】
No.4
Java&Spring記事人気No4
CodeIgniter
CodeIgniterとは?特徴・できること・他PHPフレームワークとの違いを完全解説
No.5
Java&Spring記事人気No5
Laravel
Laravelローカリゼーション入門!言語の取得と切り替え(App::getLocale / setLocale)を徹底解説
No.6
Java&Spring記事人気No6
CodeIgniter
CodeIgniterのビュー共通化ガイド!初心者でもわかる部分ビューの読み込みとinclude設計
No.7
Java&Spring記事人気No7
Laravel
Laravelの条件分岐とループ処理をBladeで書く方法
No.8
Java&Spring記事人気No8
Symfony
TwigのHTMLエスケープとrawフィルタの使い方を完全解説!初心者にもわかるテンプレート表示のコツ