Amazon LightsailのUbuntu20にDockerでNginxを動かしてみた

Dockerロゴ

最近、GolangのBeegoというフレームワークを使ってWebアプリを作っているのですが、公開するためにAmazonのLightsailを候補にしようかなと思ったので、テスト環境を作ってみることにしました。

手順としては以下の流れかと思うのですが、

  1. AWSにLightsailのインスタンスを作る
  2. Docker入れて、build
  3. Nginxを起動
  4. 表示されるかテスト

これはどうみても時間結構かかるなって感じなのですが、

ネットの情報のおかげで意外と簡単に出来ました。
1時間位で公開するWebサーバが出来てしまうのは凄い時代ですね。

特に参考にしたサイト

色々なサイトで勉強・確認させていただいたのですが、特に参考になったサイトを紹介したいと思います。

  1. Ubuntu 20.04へのDockerのインストールおよび使用方法
  2. 【Docker入門】AWS lightsail上にdocker+docker-composeを入れてnginxにアクセスしてみる

Dockerのインストール

上記サイト「1」の通りに実行すれなうまく行きました。
とりあえず打ち込んだコマンドだけログとして残したいと思います。


$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
$ sudo apt update
$ apt-cache policy docker-ce
$ sudo apt install docker-ce

起動していることを確認して
(groupaddでは、dockerはすでに追加されているというエラーが出ました)


$ sudo systemctl status docker
$ sudo groupadd docker

コマンドプロンプトを見ればユーザ名(ubuntu)は分かるんでしょうが、一応確認して、そのユーザを追加します。


$ whoami
$ sudo usermod -g docker ubuntu

dockerを再起動して、


$ sudo systemctl restart docker
$ sudo systemctl status docker

情報確認します。


$ docker info

いきなり実行すると、エラー内容は失念しましたが、socketとかのエラーが出ていたと思います。下記エラーが出ますが
これは再ログインする事で解決し、バージョン情報とか出てくると思います。


Server:
ERROR: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "h
ttp://%2Fvar%2Frun%2Fdocker.sock/v1.24/info": dial unix /var/run/docker.sock: connect: permission denied
errors pretty printing info

docker-compose

今回は使いませんが、ついでにdocker-composeもインストールしました。


$ sudo apt install docker-compose
$ docker-compose version

NginxをDockerでインストールする

まずはうまく行った時に表示される「test」と書かれたindex.htmlを用意します。


$ cd ~
$ mkdir -p dockertest/html
$ cd dockertest
$ vim html/index.html
test

Dockerfileに設定書いて、ビルドして実行します。


$ vim Dockerfile
FROM nginx
COPY ./html /usr/share/nginx/html

$ docker build -t dockertest .
$ docker run -d --rm -p 80:80 -v $(pwd)/html:/usr/share/nginx/html --name dockertest dockertest

$ docker ps -a

Nginxが有効に立ち上がってるか確認

ローカルで確認


$ curl -X GET http://localhost

外部ネットワークから確認

Lightsailはデフォルトで22番と80番が開けてあるので、特に何もする必要はなさそうです。
管理のメニューからパブリック IPを確認して、ブラウザかもしくは下記で確認。


$ curl -X GET http://XXX.XXX.XXX.XXX

どちらも「test」と表示されれば成功です。

鹿児島県の出水市という所に住んでいまして、インターネット周辺で色々活動して行きたいと思ってるところです。 Webサイト作ったり、サーバ設定したり、プログラムしたりしている、釣りと木工好きなMacユーザです。 今はデータサイエンスに興味を持って競馬AI予想を頑張ってます。

コメントを残す

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

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください