DockerでWebとデータベースをデプロイする方法

Dockerを使用して、Webアプリケーションとデータベースをデプロイするには、コンテナを2つ(1つはWebアプリケーションの運用用、もう1つはデータベースの運用用)作成するとよいでしょう。手順は次のとおりです。

  1. Dockerをインストールしてデーモンを起動します。
  2. Webアプリケーションコンテナの設定を定義するためのDockerfileを作成します。このファイルでは、使用するベースイメージ、コンテナのポートマッピング、必要なソフトウェアのインストールなどを指定できます。例:
FROM nginx:latest

COPY ./app /usr/share/nginx/html

EXPOSE 80

公式 nginx イメージをベースイメージとして利用し、自身の「app」フォルダをコンテナ側の「/usr/share/nginx/html」ディレクトリにコピーする Dockerfile を使います。さらに、コンテナ側の 80 番ポートをホスト側の 80 番ポートへマッピングします。

  1. Dockerファイルのあるディレクトリに移動し、コマンドラインで次のコマンドを実行します。
docker build -t webapp .

これは、Dockerfileを使って “webapp” という名前のイメージを作成します。

  1. 公式イメージ(MySQLやPostgreSQLなど)を利用して、データベースコンテナを作成します。コンテナを作成するには以下のコマンドを実行します。
docker run --name db -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql:latest

上記のコマンドは、`db`という名前のコンテナを作成し、最新のMySQLイメージを使用し、環境変数`MYSQL_ROOT_PASSWORD`を設定してデータベースのルートパスワードを指定しています。

  1. Webアプリケーションコンテナを作成する。次のコマンドを実行してください。
docker run --name web -p 80:80 --link db:db -d webapp

上記の command は「web」という名前の container を作成し、container の 80 番 port を host マシンの 80 番 port にマッピングします。container は前に作った database container に名前でリンクされ、それにより Web アプリケーションから「db」ホスト名でデータベースにアクセスできるようになります。

Dockerを使ってWebアプリケーションとデータベースをデプロイできました。ホスト機のIPアドレスまたはドメイン名にアクセスすることで、Webアプリケーションにアクセスできます。

bannerAds