🛸

DockerでNginxを起動する(amazon linuxバージョン)

2022/06/21に公開

目的

docker hubからamazon linuxをpull、Nginxをインストールし、起動します。

環境

OS:Windows 10 Pro
Docker Desctop:4.9.1
Docker:20.10.16

コンテナ起動状況確認

docker ps -a


何も起動していません

コンテナイメージ確認

docker images


何もダウンロードしていません

amazon linuxにNginxをインストールして起動します

amazon linuxを採用する理由

サービスを個人開発しようとしています。
cloudはAWSを利用想定、amazon linuxであれば都合が良さそうなので。

docker hubからamazon linuxを探します

amazon linuxのpullコマンドをコピペします

コマンドプロンプトで実行します

docker pull amazonlinux


無事pullできました。イメージが保存できました。

amazon linuxを起動します

docker run -d --name al2 -t amazonlinux:latest


無事、amazon linuxが起動できました
※コマンドのoptionについてはこちらの記事にまとめました

起動したal2へ接続します

docker exec -it al2 /bin/bash


無事、接続できました

OSのバージョンを確認します

cat /etc/os-release


OSはAmazon Linux、バージョンは2ですね。

amazon linuxとは

AWSが提供するLinxuディストリビューションです。
詳しくはこちらの公式をご覧ください

Nginxをインストールします

yumやmakeからインストールする方法もありますが、今回はExtrasレポジトリからインストールします

amazon-linux-extras


stableのNginxが用意されていました。こちらを使ってインストールします。

Nginxのバージョンについて

mainline:最新版ですが、バグが存在する可能性がある。
stable:重要なバグフィックスが適用されているため、本番運用に推奨される。

amazon-linux-extras install nginx1 -y


インストールが完了し、available(利用可能)からenableに変化しました。

Nginxを起動しバージョンを確認します

nginx -V


たくさんの情報が出てきますが、nginx/1.20.0でした

nginx


コマンドを実行してもstartもrunningもでません。あれ?と思い、もう一度コマンドを実行しました。Address already in useと表示されました。
どうやら80ポートは既に利用しているよ。つまり、nginxは起動しているよ。
と、解釈します。

ブラウザにhttp://localhost/へアクセスします


正常に接続できました。
※docker stop nginx-test;docker rm nginx-testでコンテナを抹殺しておきます。

コンテナを抹殺する際は注意してください

コンテナが不要になったら

docker stop al2
docker rm al2

を実施すれば抹殺できます。ただしインストールしたNginxもなくなってしまいます。
※pullしたamazon linuxにはNginxがインストールされていません。
Dockerfileやdocker-composeを利用することでインストールしたアプリケーションを残すこともできます。
別の記事に記載する予定です。

最後までお読みいただき、ありがとうございます。

今回はamazon linuxをコンテナで起動し、Nginxをインストールして利用してみました。
yumやmakeを利用すればバージョンを指定してインストール、利用できるのは助かります。

よろしければ「***の説明、下手っぴ」や「***の言い回し変」など
ご意見、ご批判頂ければ幸いです。

Discussion