[AWS] EC2에 docker를 넣어 apache를 도입하는 작업

5556 단어 아파치도커AWS
AWS EC2를 구축하고 docker를 넣고 그 위에 apache를 시작해 보겠습니다.

인스턴스로 SSH



먼저 인스턴스에 SSH합니다.

windows의 경우



Tera Team 설치 후 시작

빨간색 테두리에 AWS → EC2 → 인스턴스 → IPv4 퍼블릭 IP 주소 입력



위의 빨간색 프레임: ec2-user가 Amazon Linux를 사용하는 경우
아래 빨간 프레임: .pem이 놓여진 경로를 통과


연결되었습니다!

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가 되지 않는 경우는 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 서비스를 시작하고 상태가 활성 상태인지 확인합니다.
[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 이미지를 다운로드합니다.

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를 설치합시다.



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



즉시 시작하고 제대로 상태가 활성 상태인지 확인합니다.
[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입니다.

좋은 웹페이지 즐겨찾기