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

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

Mary-Kate Olsen
リリース: 2024-12-09 06:39:07
オリジナル
296 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート