11
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Docker入門】AWS lightsail上にdocker+docker-composeを入れてnginxにアクセスしてみる

Posted at

はじめに

今更dockerについて触れ合う機会があり、面白そうだったのであらためて触ってみる。
AWSのlightsailを使って、docker+docker-composeを入れて、コンテナ上でnginxを起動してアクセスしてみる。

開発環境

AWS,Mac

前提条件

AWSのアカウントがあること

AWSのlightsailにアクセスし、Dockerを入れるためのサーバを用意する。

にアクセスし、作成する。

スクリーンショット 2019-11-03 11.16.46.png

無料枠があって最初の1ヶ月は無料で作成できるインスタンスを選択し、OSはCentOSを選択する。
画面に従ってポチポチしていけば簡単に作成できます。

lightsailについてはこちら
https://aws.amazon.com/jp/campaigns/manga/vol1-1/?sc_icampaign=awareness_awsmanga_lightsail&sc_ichannel=ha&sc_icontent=AWSSM-1284&sc_iplace=ribbon&trk=ha_AWSSM-1284_awareness_awsmanga_lightsail_ribbon

作成後、こんな感じ。
スクリーンショット 2019-11-03 11.16.02.png

作成したインスタンスにログイン

Macで、ターミナルを開いて、パーミッションを変更し、キーを指定し、lightsail上で表示されたIPアドレスを入力してログインする。


$ chmod 600 /Users/xxxxxxx/Downloads/20191102.pem
$ ssh -i /Users/xxxxxxx/Downloads/20191102.pem centos@xxx.xxx.xxx.xxx
[centos@ip-172-26-xxx-xxx ~]$

dokcerのインストール


$ sudo yum install -y docker          # dockerのインストール
$ sudo service docker start           # dockerの起動
$ sudo groupadd docker                # ユーザー権限で実行できるようにしておく
$ sudo usermod -g docker centos       # 作成したグループにcentosユーザを追加
$ sudo /bin/systemctl restart docker.service
$ docker info          

docker infoで、Version等出てくればOK
※上手くいかないときは、一度抜けて再度ログイン。

Server Version: 1.13.1

docker-composeのインストール


$ sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version

docker-compose --versionで、Version等出てくればOK
※上手くいかないときは、一度抜けて再度ログイン。

docker-compose version 1.21.0, build 5920eb0

nginxコンテナの起動

作業用のディレクトリ作成


$ cd
$ mkdir -p dockertest/html

nginxでアクセスした時に表示するためのファイルを用意


$ vi dockertest/html/index.html
test

DockerfileにNginxのコンテナイメージを設定


$ vi dockertest/Dockerfile
FROM nginx
COPY ./html /usr/share/nginx/html

コンテナの起動

Dockerfileの内容でコンテナのビルドを実施


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

lightsail上のファイアウォールでは、デフォルトで22と80が許可されているので個別にポートを空ける対応はなし。
80以外の場合は、lightsail上で許可が必要。

プロセスの確認


$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
947523FG561ax        dockertest        "nginx -g 'daemon of…"   10 seconds ago       Up 1 second         0.0.0.0:80->80/tcp   dockertest

SELINUXの停止

ブラウザでアクセス確認した時に弾かれてしまうので、SELINUXを停止しておく。


$ getenforce
Enforcing
$ sudo setenforce 0
$ getenforce
Permissive

ブラウザでアクセス

index.htmlの中身が表示されればOK

コンテナの停止

docker ps -a で出てきたCONTAINER IDを指定する


$ docker stop 947523FG561ax
947523FG561ax
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
$ 

まとめ

Dockerの情報がたくさんあって勉強しやすく、技術的にも面白いなと思いました。
もっと勉強して行きたいと思います。
またlightsailも手軽に触れていいなと思った今日この頃。

11
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?