Docker – Apache

手動で構築

コンテナの起動

Ubuntuのコンテナ内で、手動でApache環境を構築する。

まずUbuntuのコンテナを起動する。その際、ホスト側のポート8080とコンテナ側のポート80をバインドしておく。

UbuntuのBash環境に入る。まだ/varディレクトリー下にwwwディレクトリーはない。

インストール

まずapt update

systemctlをインストール。

次にapache2をインストール。

/var/wwwディレクトリーが作成され、その下のhtmlディレクトリー内にindex.htmlが作られている。

Apche2起動

systemctlでApache2の稼働状況を確認し、起動させる。

ここでブラウザーからlocalhost:8080にアクセスすると、Apache2のデフォルトページが表示される。

Dockerfileでイメージ生成

Dockerfileに記述した内容で、指定した構成のイメージを作成することができる。ここではUbuntuのイメージをベースに、Apache2をインストールして実行させるイメージを作成する。

まず、Dockerfileを以下の内容で作成する。

  • FROMでベースとなる既存のイメージを指定
  • RUNで実行開始後にaptをupdateし、systemctlとapache2をインストール
  • CMDでsystemctlを実行させ、apache2を起動する
  • ホストとコンテナのポートのバインディングは、コンテナ起動時に指定する

Dockerfileがあるディレクトリーでbuildを実行。

docker build [Dockerfileの場所] -t [コンテナ名]

Dockerfileと同じディレクトリーでこれを実行しているので、Dockerfileの場所は'./'。何度か同じ操作を繰り返しているのでキャッシュが使われていてメッセージはシンプル。

作成されたイメージを確認。

コンテナ名、ポート番号のバインディングなどを指定してrunを実行。

この状態でブラウザーからlocalhost:8080にアクセスすると、Apache2のデフォルトページが表示される。

Docker Composeで起動

コンテナを起動するのに、毎回コマンドラインでコンテナ名を指定したりポートをバインドするのではなく、Docker Composeを使って事前に定めておく。

本来Composeは複数のコンテナを連携させるのに使われるが、単一のコンテナの起動設定にも使える。

まずDockerfileと同じ場所に以下の内容でdocker-compose.ymlファイルを作成する。

そしてdocker-composeを実行。その際、デーモンで実行させるため-dオプションをつける。

この状態でバインドされたホスト側のディレクトリーにindex.htmlを作ったり変更すると、localhost:8080にアクセスしてその内容が確認できる。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です