B3S
menu close

雑記

【Docker】Dockerを用いたLEMP環境構築


John

公開日:2022/11/02


はじめまして。

4月より中途入社した “John” と申します。

ハンドルネームは洋風ですが、大阪生まれ大阪育ちのアイムジャパニーズです。

皆様どうぞ、お見知りおきを。

 

 

今回、私が投稿する内容は、

 

 

そもそも

LEMP環境とは、、、?

 

 

L (Linux)

E (Nginx)

M (MySQL)

P (PHP(laravel))

 

 

といった

WEB系システムにおけるアーキテクチャの頭文字を取って総称している呼び方だそうです。

 

 

なぜ “Nginx” なのに “E” なのかは、お近くのGoogle先生に聞いてみて下さい。

 

 

まず初めに。

 

 

当方のプライベートで利用している端末は Macbook(M1) であり、

テストしてみた際は案外容易に構築が出来たので、ここで難儀するとは思いもよらず。

 

 

各キーワードの説明については本記事では割愛しますが

Docker は 「ホストOS が LinuxOS であることが前提のシステム」であり、

Mac は Unix系OS(簡潔に言えば Linux は Unix を元にしているOS)の為、別途の設定は不要でした。

 

当方が業務で利用している端末 Windows の場合、

Windows で Linux を扱うために必要なサブシステム

”WSL(Windows Subsystem for Linux)”

と呼ばれるものの導入が必要でした。

(これは Windows の上で Linux を起動して、その上で Docker を起動するイメージでしょうか。)

 

 

といった事前準備を行いまして。

 

Windows の上に、Linux。

Linux の上に、Docker。

そして

Docker の上に、Linux。

 

 

もう訳分かんないですね。

 

 

なぜ、 Windows の上に linux が起動しているのに、

Docker とやらを間にかませて Linux を起動させるのか。

 

 

もちろん Docker システムの仕様が 前述した「ホストOS が LinuxOS であることが前提のシステム」という理由もありますが、

そこまでしてDocker を利用するのには理由があります。

 

 

 

 

“Webサーバー” を構築するには

サーバー系のOS(今回は Linux を利用)の上に、

Webサーバー(今回は Nginx を利用)を導入する必要があります。

 

 

これらを一から設定する場合、

 

 

yum -y install httpd

 

 

systemctl enable httpd.service

 

 

firewall-cmd --add-service=http --zone=public --permanent

firewall-cmd –reload

 

 

などなど。

 

 

一つ一つをコマンドを用いて導入 / 設定 を進めていくことになります。

 

 

_人人人人人人人人人人人人_
> もうこれがめんどい。 <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

 

 

これを簡略化するのが

Dockerシステム上でのみ利用ができる

 

Docker-image

 

そう呼ばれている

それらインフラ系の情報がひとまとまりとなっている

イメージと呼ばれるものを用いることで、私たちはハッピーになれます。

 

 

でも

 

 

詳細の説明は割愛します。

 

 

本投稿までに至る執筆等に手間取った為という内部的な事情ではなく、

 

 

どこかのタイミングでの

セキュリティに関してのテーマを取り扱った際にて執筆 / 説明 をしようと思っている為です。

 

 

 

 

決して。

 

 

 

 

 

 

 

 

同じような要領で DBサーバー (今回は MySQL ) も。

 

 

 

 

 

 

メインディッシュ の アプリケーション ( PHP_Laravel ) も。

※ゴリ押ししようとしましたが、

これ(アプリケーション)を簡易的に構成するのに利用しているのは “Dockerfile” と呼ばれるものです。

 

 

 

 

といった要領で。

 

 

WEB系システムにおけるアーキテクチャを揃えた環境を

 

 

>>>>>>>  L E M P 環境  <<<<<<<<

 

 

と呼び、

 

それらを

Docker ( Docker Engine ) を利用して

“Docker-image” や

“Dockerfile”などにて

それぞれの環境情報を設定することにより、

簡易的に構築ができるものとなります。

 

 

 

今回は

本当の本当に概要だけのご説明となりますが

実際にテストとして構築した環境のソースコードについて

またどこかのタイミングでお話出来ればなと思っております。

 

 

今後とも、どうぞよしなに。