Docker ComposeでMariaDBのポート番号を変更する方法
Docker Compose で MariaDB のポート番号を変更する方法
このチュートリアルでは、docker-compose
ファイルを使用して MariaDB コンテナを起動し、デフォルトのポート 3306 以外のポートで実行する方法を説明します。
手順
docker-compose.yml
ファイルに、MariaDB サービスのポート設定を追加します。以下の例では、ポート 3307 を使用します。version: "3.8" services: mariadb: image: mariadb:latest container_name: mariadb restart: unless-stopped ports: - "3307:3306" environment: MYSQL_ROOT_PASSWORD: password
環境変数を設定する (オプション)
.env
ファイルを作成し、MariaDB の環境変数を設定できます。このファイルを使用すると、docker-compose.yml
ファイルを編集せずに、パスワードなどの設定を変更できます。MYSQL_ROOT_PASSWORD=password
.env
ファイルが存在する場合は、docker-compose
はこのファイルの環境変数を読み取ります。MariaDB コンテナを起動する
以下のコマンドを使用して、MariaDB コンテナを起動します。
docker-compose up -d
MariaDB に接続する
docker exec -it mariadb mysql -p
パスワードを求められるので、設定したパスワードを入力します。
補足
- 上記の例では、
mariadb
という名前のサービスを使用しています。別の名前を使用する場合は、docker-compose.yml
ファイルと.env
ファイルの設定をそれに合わせて変更する必要があります。
このチュートリアルは、情報提供のみを目的としており、いかなる保証もありません。 このチュートリアルを使用した結果発生した如何なる損害についても、一切責任を負いません。
version: "3.8"
services:
mariadb:
image: mariadb:latest
container_name: mariadb
restart: unless-stopped
ports:
- "3307:3306"
environment:
MYSQL_ROOT_PASSWORD: password
.env
MYSQL_ROOT_PASSWORD=password
説明
- この
docker-compose.yml
ファイルは、mariadb
という名前のサービスを定義しています。 - このサービスは、
mariadb:latest
イメージを使用します。 - このサービスは、
mariadb
という名前のコンテナで実行されます。 - このサービスは、コンテナ内のポート 3306 をホストマシンのポート 3307 にマップします。
- このサービスは、
MYSQL_ROOT_PASSWORD
環境変数を使用して、MariaDB の root ユーザーのパスワードを設定します。
使用方法
- 上記のコードは、MariaDB を起動するための基本的な例です。 実際の環境に合わせて、必要に応じてコードを変更する必要があります。
MariaDB のポート番号を変更するその他の方法
上記の方法に加えて、MariaDB のポート番号を変更するには、環境変数を使用する方法もあります。 この方法を使用するには、以下の手順を実行します。
以下のコマンドを使用して、
MYSQL_TCP_PORT
環境変数を設定します。export MYSQL_TCP_PORT=3307
docker run --name mariadb -e MYSQL_ROOT_PASSWORD=password -p "3307:3306" mariadb
Dockerfile を使用する
MariaDB のポート番号を変更するもう 1 つの方法は、Dockerfile を使用する 方法です。 この方法を使用するには、以下の手順を実行します。
以下の内容の Dockerfile を作成します。
FROM mariadb:latest ENV MYSQL_TCP_PORT 3307 RUN sed -i '/^port=/c\port=$MYSQL_TCP_PORT/' /etc/my.cnf
以下のコマンドを使用して、Docker イメージを作成します。
docker build -t mariadb-custom .
--network オプションを使用する
docker network create mariadb-net
docker run --name mariadb --network mariadb-net --expose 3307 -e MYSQL_ROOT_PASSWORD=password mariadb
docker network connect mariadb-net --expose 3307 mariadb
注意事項
- これらの方法は、すべて MariaDB 10.2 以降でのみ使用できます。
docker docker-compose mariadb