[AWS]EC2にdockerを入れてapacheを導入する作業


AWSのEC2を建ててdockerを入れてその上でapacheを起動させてみます。


#インスタンスへSSH
まずはインスタンスへSSHします。

##windowsの場合
Tera Teamをインストール後起動
![aws.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543413/4a1d0b55-576b-a55e-067c-db140f3cb02c.png)
赤枠にAWS→EC2→インスタンス→IPv4 パブリック IPのアドレスを入力

![aws2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543413/5d9c2b4e-8116-a202-4756-896d8aa571b2.png)

上の赤枠：ec2-userはAmazon Linux を使っている場合
下の赤枠：.pemが置かれているパスを通す


![aws3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543413/0bbe09a4-c592-cbec-7e82-60323588f40f.png)
**繋がりました！**


##macの場合

ターミナル上でsshコマンドを実行します。

```
$ ssh -i "/user/ユーザー名/.ssh/〇〇.pem" ec2-user@パブリックIP
```
 
これで繋がります。


#Dockerインストール
 


##sudo yum install

```
$ sudo yum install
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Error: Need to pass a list of pkgs to install
 Mini usage:

install PACKAGE...

Install a package or packages on your system

aliases: install-n, install-na, install-nevra
```

###※sudo -i（しなくてもOK!）
sudoコマンドが多いのでここからrootになります。
rootにならない場合はsudoをコマンドの前に都度入力して実行します。


```
[ec2-user@ip-172-31-32-22 ~]$ sudo -i
[root@ip-172-31-32-22 ~]#
```





##docker -v
インストールできたか確認します。

```
# docker -v
Docker version 18.09.9-ce, build 039a7df
``` 




##1.systemctl start docker
##2.systemctl status docker
dockerのサービスを起動し、ステータスが active になったことを 確認します。


```
[root@ip-172-31-32-22 ~]# systemctl start docker
[root@ip-172-31-32-22 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-01-28 22:12:22 UTC; 12s ago
     Docs: https://docs.docker.com
  Process: 3542 ExecStartPre=/usr/libexec/docker/docker-setup-runtimes.sh (code=exited, status=0/SUCCESS)
  Process: 3531 ExecStartPre=/bin/mkdir -p /run/docker (code=exited, status=0/SUCCESS)
 Main PID: 3550 (dockerd)

```

 

##コンテナイメージのダウンロード
ここではDocker Hubに公開されているCentOSのimageを利用します。


CentOSのimageをダウンロードします。


##docker pull centos
すでにインストールしていたので表示が初めての人と違います。


```
Using default tag: latest
latest: Pulling from library/centos
Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700
Status: Image is up to date for centos:latest
```




##docker images
ダウンロードしたdocker-imageの情報を確認

```
[root@ip-172-31-32-22 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              5ad3bd0e67a9        6 days ago          127MB
centos              latest              470671670cac        10 days ago
```
 


##docker run -p 80:80 -p 443:443 -d --privileged centos:latest /sbin/init
コンテナの起動とログイン
ダウンロードしたイメージを元に、コンテナを作成します。

※-dオプションはバックグラウンドで実行する意味です。

```
[root@ip-172-31-32-22 ~]# docker run -p 80:80 -p 443:443 -d --privileged centos:latest /sbin/init
95fefce8acaeef8c6d2319861545855f5d5e130734363bacf707d09653a679f8
```


##docker ps
psコマンドでコンテナの情報を確認し、CONTAINER ID をコピーします。

```
[root@ip-172-31-32-22 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                                      NAMES
95fefce8acae        centos:latest       "/sbin/init"        About a minute ago   Up About a minute   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   reverent_kowalevski
```

##docker exec コマンドでコンテナへ入ります。

docker exec -it あなたのID /bin/bash


```
[root@ip-172-31-32-22 ~]# docker exec -it 95fefce8acae  /bin/bash
[root@95fefce8acae /]#
```
 
※-iはインタラクティブモード/-tはターミナル
-i -tでも同じ


#Apache

 
##Apacheをインストールしましょう。

###yum install httpd
途中y/nと聞かれるので全てyと打ち込んでエンター押しておきましょう
 
```
[root@95fefce8acae /]# yum install httpd
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 0:31:53 ago on Tue Jan 28 22:33:35 2020.
Dependencies resolved.
~~(省略)~~
```

##Apacheサービスの起動とステータスの確認
###1.systemctl start httpd
###2.systemctl status httpd
さっそく起動してちゃんと状態が active になっているか確認します。

```
[root@95fefce8acae /]# systemctl start httpd
[root@95fefce8acae /]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor pres>
   Active: active (running) since Tue 2020-01-28 23:08:21 UTC; 9s ago
     Docs: man:httpd.service(8)
 Main PID: 217 (httpd)
   Status: "Running, listening on: port 80"
    Tasks: 213 (limit: 6068)
```
 

##ブラウザで確認してみよう！


冒頭で説明したやり方でパブリックIDをコピーしてブラウザに打ち込んでみよう。
apacheのデフォルトページが表示されていればOKです。


![aws4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543413/f52acc7c-cfee-fe22-2a28-2d525e09c95b.png)