🔖

【Docker】EC2にDockerインストール~WEBページ表示迄

2021/03/25に公開

はじめに

AWS上のEC2(t2.micro)にDockerをインストールし、nginxコンテナを立てる。
WEBページが表示できるところまで実施。

Dockerとは??

  • コンテナ型の仮想環境を作成、配布、実行するためのプラットフォーム
  • Docker社が開発

構成図

EC2(ubuntu)のスペック

項目 設定
VM名 dockertest
インスタンスタイプ t2.micro
OS Ubuntu
vCPU 1
メモリ(GiB) 1
ルートデバイス名 /dev/sda1:8GB

※必要最低限の構成になります。

前提

  • AWS内のVPCやEC2等の環境は事前に構築済み
  • EC2(ubuntu)は作成した直後の状態
  • 以下のセキュリティグループを使用

※SSH(22ポート)と8080ポートを開放

構築手順

①Dockerインストール
②nginxイメージのダウンロード
③nginxコンテナの作成
④WEB画面表示確認

①Dockerインストール

UbuntuにDockerをインストールする。

Dockerのリポジトリ設定

1.aptパッケージを更新する。

コマンド
sudo apt update

2.必要なパッケージをインストールする。

コマンド
sudo apt install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

実行例)

実行例
ubuntu@ip-192-168-0-140:~$ sudo apt install \
>     apt-transport-https \
>     ca-certificates \
>     curl \
>     gnupg-agent \
>     software-properties-common
Reading package lists... Done
Building dependency tree
Reading state information... Done
ca-certificates is already the newest version (20210119~20.04.1).
ca-certificates set to manually installed.
curl is already the newest version (7.68.0-1ubuntu2.4).
curl set to manually installed.
software-properties-common is already the newest version (0.98.9.4).
software-properties-common set to manually installed.
The following NEW packages will be installed:
  apt-transport-https gnupg-agent
0 upgraded, 2 newly installed, 0 to remove and 39 not upgraded.
Need to get 6936 B of archives.
After this operation, 207 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu focal-updates/universe amd64 apt-transport-https all 2.0.4 [1704 B]
Get:2 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu focal-updates/universe amd64 gnupg-agent all 2.2.19-3ubuntu2.1 [5232 B]
Fetched 6936 B in 0s (18.4 kB/s)
Selecting previously unselected package apt-transport-https.
(Reading database ... 60092 files and directories currently installed.)
Preparing to unpack .../apt-transport-https_2.0.4_all.deb ...
Unpacking apt-transport-https (2.0.4) ...
Selecting previously unselected package gnupg-agent.
Preparing to unpack .../gnupg-agent_2.2.19-3ubuntu2.1_all.deb ...
Unpacking gnupg-agent (2.2.19-3ubuntu2.1) ...
Setting up apt-transport-https (2.0.4) ...
Setting up gnupg-agent (2.2.19-3ubuntu2.1) ...
ubuntu@ip-192-168-0-140:~$

3.Docker公式のGPG公式鍵をインストールする。

コマンド
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

実行例)

実行例
ubuntu@ip-192-168-0-140:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK
ubuntu@ip-192-168-0-140:~$

4.fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88であることを確認する。

コマンド
sudo apt-key fingerprint 0EBFCD88

実行例)

実行例
ubuntu@ip-192-168-0-140:~$ sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

ubuntu@ip-192-168-0-140:~$

5.repository (stable) を追加する。

コマンド
sudo add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) \
    stable"

実行例)

実行例
ubuntu@ip-192-168-0-140:~$ sudo add-apt-repository \
>     "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
>     $(lsb_release -cs) \
>     stable"
Get:1 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu focal InRelease [265 kB]
Get:2 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:3 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]
Get:4 https://download.docker.com/linux/ubuntu focal InRelease [36.2 kB]
Get:5 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages [8458 B]
Hit:6 http://security.ubuntu.com/ubuntu focal-security InRelease
Fetched 524 kB in 1s (980 kB/s)
Reading package lists... Done
ubuntu@ip-192-168-0-140:~$

Dockerインストール

1.aptパッケージを更新する。

コマンド
sudo apt update

2.最新版のDockerをインストール。

コマンド
sudo apt-get install docker-ce docker-ce-cli containerd.io

3.Dockerを起動する。

コマンド
sudo systemctl start docker

4.Dockerが起動していることを確認。

コマンド
sudo systemctl status docker

→「active(running)」であればOK

実行例)

実行例
ubuntu@ip-192-168-0-140:~$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset>
     Active: active (running) since Thu 2021-03-25 10:37:24 UTC; 2min 6s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 3065 (dockerd)
      Tasks: 8
     Memory: 55.1M
     CGroup: /system.slice/docker.service
             mq3065 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/cont>

Mar 25 10:37:24 ip-192-168-0-140 dockerd[3065]: time="2021-03-25T10:37:24.24665>
Mar 25 10:37:24 ip-192-168-0-140 dockerd[3065]: time="2021-03-25T10:37:24.24682>
Mar 25 10:37:24 ip-192-168-0-140 dockerd[3065]: time="2021-03-25T10:37:24.24695>
Mar 25 10:37:24 ip-192-168-0-140 dockerd[3065]: time="2021-03-25T10:37:24.24730>
Mar 25 10:37:24 ip-192-168-0-140 dockerd[3065]: time="2021-03-25T10:37:24.40969>
Mar 25 10:37:24 ip-192-168-0-140 dockerd[3065]: time="2021-03-25T10:37:24.50076>
Mar 25 10:37:24 ip-192-168-0-140 dockerd[3065]: time="2021-03-25T10:37:24.59835>
Mar 25 10:37:24 ip-192-168-0-140 dockerd[3065]: time="2021-03-25T10:37:24.59868>
Mar 25 10:37:24 ip-192-168-0-140 systemd[1]: Started Docker Application Contain>
Mar 25 10:37:24 ip-192-168-0-140 dockerd[3065]: time="2021-03-25T10:37:24.64941>

5.Dockerの自動起動設定をする。

コマンド
sudo systemctl enable docker

6.Dockerの自動起動設定確認をする。

コマンド
sudo systemctl is-enabled docker

実行例)

実行例
ubuntu@ip-192-168-0-140:~$ sudo systemctl is-enabled docker
enabled
ubuntu@ip-192-168-0-140:~$

②nginxイメージのダウンロード

1.root権限にスイッチする。

コマンド
sudo -i

※dockerを操作するためには、root権限へのスイッチが必要。

2.nginxイメージのダウンロードを実施する。

コマンド
docker pull nginx

実行例)

実行例
root@ip-192-168-0-140:~# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
6f28985ad184: Pull complete
29f7ebf60efd: Pull complete
879a7c160ac6: Pull complete
de58cd48a671: Pull complete
be704f37b5f4: Pull complete
158aac73782c: Pull complete
Digest: sha256:d2925188effb4ddca9f14f162d6fba9b5fab232028aa07ae5c1dab764dca8f9f
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
root@ip-192-168-0-140:~#

3.nginxイメージが取得できていることを確認する。

コマンド
docker images

実行例)

実行例
root@ip-192-168-0-140:~# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    6084105296a9   12 days ago   133MB
root@ip-192-168-0-140:~#

③nginxコンテナの作成

1.nginxコンテナの作成する。

コマンド
docker run --name nginx01 -d -p 8080:80 nginx

【説明】

  • 「nginx01」というコンテナを作成
  • 外部ポート:8080、内部ポート:80

※8080ポートは、既にセキュリティグループにて開放済み。

実行例)

実行例
root@ip-192-168-0-140:~# docker run --name nginx01 -d -p 8080:80 nginx
73fa6c221e8094acf6f62d73c044e5265fb3d437981f595999ab34a6c6f95b93
root@ip-192-168-0-140:~#

2.nginxコンテナが作成できていることを確認する。

コマンド
docker ps

→「nginx01」のコンテナが「Up」していれば問題なし。

実行例)

実行例
root@ip-192-168-0-140:~# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED              STATUS              PORTS                  NAMES
73fa6c221e80   nginx     "/docker-entrypoint.…"   About a minute ago   Up About a minute   0.0.0.0:8080->80/tcp   nginx01
root@ip-192-168-0-140:~#

④WEB画面表示確認

ブラウザのURL欄に以下のように入力する。

パブリックIPアドレス:8080

nginxのWEB画面が表示されることを確認。

参考

Ubuntu 18.04 LTS に Docker をインストールする

Discussion