ホームページ > データベース > mysql チュートリアル > Docker 環境内の MySQL にデータベース ダンプを効率的にインポートするにはどうすればよいですか?

Docker 環境内の MySQL にデータベース ダンプを効率的にインポートするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-11 15:14:12
オリジナル
817 人が閲覧しました

How to Efficiently Import Database Dumps into MySQL within a Docker Environment?

Dockerfile でのデータベースのセットアップとダンプのインポート

Docker 環境では、MySQL の構成やデータベース ダンプのインポート中に問題が発生するのが一般的です。ビルドプロセス。これらの問題を解決するには、次のアプローチを検討してください。

公式の MySQL Docker イメージには、起動時にデータをインポートできる機能が含まれています。これにより、Dockerfile 内で手動でデータベースを作成したり、ダンプをインポートしたりする手順が不要になります。これを実装するには、次のような docker-compose.yml ファイルを作成します。

data:
  build: docker/data/.
mysql:
  image: mysql
  ports:
    - "3307:3306"
  environment:
    MYSQL_ROOT_PASSWORD: 1234
  volumes:
    - ./docker/data:/docker-entrypoint-initdb.d
  volumes_from:
    - data
ログイン後にコピー

この構成では、data-dump.sql ファイルは docker/data ディレクトリに配置される必要があります。ボリューム マッピングにより、/docker-entrypoint-initdb.d のコンテナ内でアクセスできるようになります。

舞台裏で、MySQL Docker イメージ内の docker-entrypoint.sh スクリプトには、SQL を自動的に実行するコード ブロックが含まれています。 /docker-entrypoint-initdb.d にあるファイル:

    for f in /docker-entrypoint-initdb.d/*; do
        case "$f" in
            *.sh)  echo "<pre class="brush:php;toolbar:false">FROM n3ziniuka5/ubuntu-oracle-jdk:14.04-JDK8

VOLUME /var/lib/mysql

CMD ["true"]
ログイン後にコピー
: running $f"; . "$f" ;; *.sql) echo ": running $f"; "${mysql[@]}" < "$f" && echo ;; *) echo ": ignoring $f" ;; esac echo done

これにより、data-dump.sql が確実にファイルはコンテナの起動時に実行されます。

コンテナの再起動と削除後もデータの永続性を維持するには、別のデータ コンテナを作成することをお勧めします。このようなコンテナーの Dockerfile は、次のように単純にすることができます。

CMD ["true"] コマンドは、コンテナーの終了を防ぐために使用されます。データの永続性を確保するために、データ コンテナーが開始状態である必要はありません。

以上がDocker 環境内の MySQL にデータベース ダンプを効率的にインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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