簡易データベースサーバーをコンテナーに構築する

更新 -

MariaDB を使用して、その他のアプリケーションからアクセスできるコンテナーに基本的なデータベースを設定できます。このガイドでは以下の手順について説明します。

  • docker フォーマットのコンテナーに MariaDB データベースサーバーを構築する
  • ホストのポート 3306 でサービスを公開する
  • データベースサービスを起動して情報を共有する
  • Web サーバーからデータベースをクエリーするためのスクリプトを実行できるようにする (こちらから入手できる追加 Web サーバーコンテナーが必要です)
  • このコンテナーを使用し拡張するためのヒント

MariaDB データベースサーバーコンテナーを作成し実行する

  1. システムをインストールする。docker パッケージを含む Red Hat Enterprise Linux 7 または Red Hat Enterprise Linux Atomic Host システムをインストールし、docker サービスを起動します。詳細は Get Started with Docker Containers を参照してください。

  2. イメージを取得する。以下のコマンドを実行して rhel7 イメージを取得します。

    # docker pull rhel7:latest
    
  3. サポートファイルが含まれる tarball を取得する。このガイドに添付されている tarball ファイル (mariadb_cont*.tgz) をダウンロードします。新しい mydbcontainer ディレクトリーにダウンロードして、以下のように tar を展開してください。

    # mkdir ~/mydbcontainer
    # cp mariadb_cont*.tgz ~/mydbcontainer
    # cd ~/mydbcontainer
    # tar xvf mariadb_cont*.tgz
    gss_db.sql
    Dockerfile
    
  4. Dockerfile を確認する。必要に応じて ~/mydbcontainer ディレクトリーにある Dockerfile ファイルを編集します (変更が必要なのはおそらく Maintainer_Name のみ)。以下は、そのファイルの内容です。

    # Database container with simple data for a Web application
    # Using RHEL 7 base image and MariahDB database
    # Version 1
    
    # Pull the rhel image from the local repository
    FROM rhel7:latest
    USER root
    
    MAINTAINER Maintainer_Name
    
    # Update image
    RUN yum update -y
    
    # Add Mariahdb software
    RUN yum -y install mariadb-server
    
    # Set up Mariahdb database
    ADD gss_db.sql /tmp/gss_db.sql
    RUN /usr/libexec/mariadb-prepare-db-dir
    RUN /usr/bin/mysqld_safe --basedir=/usr & \
        sleep 10s && \
     /usr/bin/mysqladmin -u root password 'redhat' && \
        mysql --user=root --password=redhat < /tmp/gss_db.sql && \
        mysqladmin shutdown --password=redhat
    
    # Expose Mysql port 3306
    EXPOSE 3306
    
    # Start the service
    CMD ["--basedir=/usr"]
    ENTRYPOINT ["/usr/bin/mysqld_safe"]
    
  5. データベースサーバーコンテナーを構築する。Dockerfile ファイルとその他のコンテンツを含むディレクトリーで、以下のコマンドを実行します。

    # docker build -t dbforweb .
    Sending build context to Docker daemon 528.4 kB
    Sending build context to Docker daemon
    Step 0 :FROM rhel7:latest
     ---> bef54b8f8a2f
    Step 1 :USER root
    ...
    
  6. データベースサーバーコンテナーを起動する。コンテナーイメージを起動するには、以下のコマンドを実行します。

    # docker run -d -p 3306:3306 --name=mydbforweb dbforweb
    
  7. データベースサーバーコンテナーをテストする。たとえば、ホストの docker0 インターフェイスが 172.17.42.1 の場合は、以下のように nc (RHEL 7 の場合は yum install nc) を実行して、データベースコンテナーが稼動していることを確認します。

    # nc -v 172.17.42.1 3306
    Ncat:Version 6.40 ( http://nmap.org/ncat )
    Ncat:Connected to 172.17.42.1:3306.
    R
    5.5.40-MariaDB?acL3YF31?X?FWbiiTIO2Kd6mysql_native_password Ctrl-C
    

コンテナーを使用するためのヒント

ここでは、Web サーバーコンテナーを使用するためのヒントを紹介します。

  • 独自のデータベースを追加する。データベースファイルをビルドディレクトリーにコピーし、データベース名を、gss_db.sql からお使いのデータベースの名前に変更すると、独自の MariaDB コンテンツを (Dockerfile ファイルの複数の場所に) 追加できます。

  • コンテナーを編成する。その他のコンテナーと一緒にこのコンテナーを管理するには、Kubernetes を使用してポッドに編成することが推奨されます。Kubernetes を使用してコンテナーを編成する方法については Get Started Orchestrating Docker Containers with Kubernetes を参照してください。

Attachments

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.