Docker ComposeでMariaDBのポート番号を変更する方法

2024-05-23

Docker Compose で MariaDB のポート番号を変更する方法

このチュートリアルでは、docker-compose ファイルを使用して MariaDB コンテナを起動し、デフォルトのポート 3306 以外のポートで実行する方法を説明します。

手順

  1. 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
    
  2. 環境変数を設定する (オプション)

    .env ファイルを作成し、MariaDB の環境変数を設定できます。このファイルを使用すると、docker-compose.yml ファイルを編集せずに、パスワードなどの設定を変更できます。

    MYSQL_ROOT_PASSWORD=password
    

    .env ファイルが存在する場合は、docker-compose はこのファイルの環境変数を読み取ります。

  3. MariaDB コンテナを起動する

    以下のコマンドを使用して、MariaDB コンテナを起動します。

    docker-compose up -d
    
  4. 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 のポート番号を変更するには、環境変数を使用する方法もあります。 この方法を使用するには、以下の手順を実行します。

    1. 以下のコマンドを使用して、MYSQL_TCP_PORT 環境変数を設定します。

      export MYSQL_TCP_PORT=3307
      
    2. docker run --name mariadb -e MYSQL_ROOT_PASSWORD=password -p "3307:3306" mariadb
      

    Dockerfile を使用する

    MariaDB のポート番号を変更するもう 1 つの方法は、Dockerfile を使用する 方法です。 この方法を使用するには、以下の手順を実行します。

    1. 以下の内容の Dockerfile を作成します。

      FROM mariadb:latest
      
      ENV MYSQL_TCP_PORT 3307
      
      RUN sed -i '/^port=/c\port=$MYSQL_TCP_PORT/' /etc/my.cnf
      
    2. 以下のコマンドを使用して、Docker イメージを作成します。

      docker build -t mariadb-custom .
      

    --network オプションを使用する

    1. docker network create mariadb-net
      
    2. docker run --name mariadb --network mariadb-net --expose 3307 -e MYSQL_ROOT_PASSWORD=password mariadb
      
    3. docker network connect mariadb-net --expose 3307 mariadb
      

    注意事項

    • これらの方法は、すべて MariaDB 10.2 以降でのみ使用できます。

    docker docker-compose mariadb


    困った時の救世主!Ubuntu 14.04でMySQLサーバーのインストールトラブル解決

    必要なもの:Ubuntu 14. 04 がインストールされたコンピューターsudo 権限を持つユーザーアカウント手順:パッケージリストを更新します。MySQL サーバーとクライアントパッケージをインストールします。MySQL インストールスクリプトを実行します。...


    【保存版】Docker コンテナと MariaDB の接続: "ER_HOST_NOT_PRIVILEGED" エラーを解決するためのヒント集

    このブログ記事では、Docker コンテナから MariaDB コンテナに接続できないという問題、特に "ER_HOST_NOT_PRIVILEGED" エラーが発生する場合について解説します。 この問題は、MySQL クライアントが適切な権限を持っていないために発生することが多く、Docker ネットワーク設定や MariaDB 設定の誤った構成が原因である可能性があります。...


    ストアドプロシージャーを使用してAUTO_INCREMENT列の左側をゼロ埋めする

    このページでは、MariaDBでAUTO_INCREMENT列の左側をゼロ埋めする方法について、以下の2つの方法を詳しく解説します。方法1:LPAD関数を使用するLPAD関数は、文字列の左側を指定された文字数までゼロ埋めします。この関数は、AUTO_INCREMENT列の値を文字列に変換してから、ゼロ埋めすることができます。...


    Docker AlpineでDjango + MySQL: エラー「No module named 'MySQLdb'」を解決する

    Docker Alpine環境でDjangoアプリケーションを実行する際に、MySQLdbモジュールの読み込みエラーが発生することがあります。これは、Alpine Linuxが軽量化のためにデフォルトで一部の開発ツールやライブラリを含んでいないことが原因です。...


    SQL SQL SQL SQL Amazon で見る



    DockerとDocker Composeを使ってMySQLポートを公開する方法

    このチュートリアルでは、DockerとDocker Composeを使ってMySQLコンテナを起動し、そのポートをホストマシンに公開する方法を説明します。この方法により、ローカルマシン上の他のアプリケーションからMySQLデータベースに接続することが可能になります。