DockerでNginxを起動する(amazon linuxバージョン)
目的
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