Dockerfile の使用記録: dockerfile を使用して本番環境で mysql を構築する場合の詳細なチュートリアルと事例

Dockerfile の使用記録: dockerfile を使用して本番環境で mysql を構築する場合の詳細なチュートリアルと事例

1.1 Dockerfile は、指示とパラメータを含む Docker イメージの構築に使用されるテキスト ファイルです。MySQL Dockerfile は、主に MySQL サービスのイメージを構築するために使用されます。以下は、基本的な MySQL Dockerfile の例です。

# 使用官方MySQL镜像
FROM mysql:latest
# 设置root用户的密码
ENV MYSQL_ROOT_PASSWORD=123456
# 设置字符集
ENV LANG=C.UTF-8
# 将自定义配置文件复制到镜像中
COPY my.cnf /etc/mysql/my.cnf
# 将初始化SQL脚本复制到镜像中
COPY init.sql /docker-entrypoint-initdb.d/
# 持久化数据卷
VOLUME /var/lib/mysql

Dockerfile は主に次の部分で構成されます。

FROM mysql:latest: イメージが公式の MySQL イメージに基づいて構築されていることを示します。最新バージョンの使用を示すには、latest タグを使用します。
ENV MYSQL_ROOT_PASSWORD=123456: MySQL root ユーザーのパスワードを環境変数である 123456 に設定します。
ENV LANG=C.UTF-8: 正しい文字処理を保証するために、文字セットを UTF-8 に設定します。
COPY my.cnf /etc/mysql/my.cnf: カスタマイズされた MySQL 構成ファイル my.cnf をイメージ内の /etc/mysql/my.cnf パスにコピーします。
COPY init.sql /docker-entrypoint-initdb.d/: 初期化 SQL スクリプト init.sql をイメージ内の /docker-entrypoint-initdb.d/ パスにコピーします。スクリプトはコンテナーの起動時に自動的に実行されます。データベース。
VOLUME /var/lib/mysql: MySQL データ ディレクトリをホストの /var/lib/mysql ディレクトリにマウントして、ホストの永続データ ボリュームにデータを保存します。

1.2 構成ファイルと SQL スクリプトの作成

my.cnf 構成ファイルをローカルに作成して、MySQL サービスのパラメーターを構成します。たとえば、これは単純な my.cnf ファイルです。

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_connections=100

1.3 init.sql ファイルをローカルに作成してデータベースを初期化します。たとえば、次は単純な init.sql ファイルです。

通常、Docker の起動時に必要なデータベースやテーブルの作成、データの挿入などを行うには、init.sql ファイルを自分で記述する必要があります。たとえば、簡単な init.sql の例を次に示します。

CREATE DATABASE mydb;
USE mydb;

CREATE TABLE users (
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL,
  email VARCHAR(50) NOT NULL,
  PRIMARY KEY (id)
);
INSERT INTO users (name, email) VALUES ('John Doe', '[email protected]');
INSERT INTO users (name, email) VALUES ('Jane Doe', '[email protected]');

このスクリプトは、mydb という名前のデータベースを作成し、その中に users という名前のテーブルを作成し、2 つのレコードを挿入します。
init.sql ファイルは、Docker イメージの起動時にデータベースを自動的に初期化するために、実際のニーズに応じて作成できます。Dockerfile では、COPY init.sql /docker-entrypoint-initdb.d/ コマンドを使用してスクリプトをイメージ内の /docker-entrypoint-initdb.d/ ディレクトリにコピーし、コンテナが起動します。

1.4 Dockerイメージのビルド

コマンド ラインで Dockerfile が存在するディレクトリを入力し、次のコマンドを実行して Docker イメージを構築します。

docker build -t my-mysql .

このコマンドは、現在のディレクトリで Dockerfile ファイルを検索し、my-mysql という名前の Docker イメージを構築します。

1.5 Dockerコンテナの実行

コマンドラインで次のコマンドを実行して、Docker コンテナーを実行します。

docker run -d -p 3306:3306 --name my-mysql -v /path/to/data:/var/lib/mysql my-mysql

このコマンドは、my-mysql という名前の Docker コンテナを起動し、コンテナ内の MySQL サービスの 3306 ポートをホストの 3306 ポートにマップします。-v /path/to/data:/var/lib/mysql は、データの永続性を実現するために MySQL データ ディレクトリをホスト上の /path/to/data ディレクトリにマウントすることを意味します。

おすすめ

転載: blog.csdn.net/Liu__sir__/article/details/130643737
おすすめ