ホームページ >データベース >mysql チュートリアル >Docker コンテナ内の事前定義されたスキーマを使用して MySQL データベースを初期化する方法

Docker コンテナ内の事前定義されたスキーマを使用して MySQL データベースを初期化する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-09 06:39:07313ブラウズ

How to Initialize a MySQL Database with a Predefined Schema in a Docker Container?

Docker でスキーマを使用して MySQL データベースを初期化する

問題

Docker ユーザーが初期化で問題が発生するDockerfile を使用して事前定義されたスキーマを持つ MySQL データベース。ドキュメントのガイドラインに従っているにもかかわらず、スキーマ スクリプトを実行することを目的とした CMD コマンドが失敗し、コンテナーを正常に作成できません。

解決策

解決策には、次のような順次的なアプローチが含まれます。

  1. MySQL スキーマをダンプしますファイル:
    mysqldump コマンドを使用してデータベース スキーマをファイルにエクスポートします。
  2. スキーマ ファイルを Docker コンテナに追加します:
    Dockerfile で、ADD コマンドを使用しますschema.sql ファイルを /docker-entrypoint-initdb.d ディレクトリにコピーします。このディレクトリでは、データベースの初期化時にスクリプトを自動実行できます。
  3. Docker MySQL インスタンスの開始:
    指定された MySQL イメージと更新された Dockerfile を使用して Docker コンテナを開始します。

例Dockerfile:

FROM mysql:5.7.15

MAINTAINER me

ENV MYSQL_DATABASE=<schema_name> \
    MYSQL_ROOT_PASSWORD=<password>

ADD schema.sql /docker-entrypoint-initdb.d

EXPOSE 3306

追加メモ:

  • docker-entrypoint.sh スクリプトは、「.sql」を持つすべてのファイルを自動的に実行します。 /docker-entrypoint-initdb.d ディレクトリ内の拡張子。
  • このメソッドでは、コンテナ作成時にスキーマを使用して MySQL データベースを初期化し、手動介入の必要性を排除します。

以上がDocker コンテナ内の事前定義されたスキーマを使用して MySQL データベースを初期化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。