AWS 도커 웹서버 설치

김철현·2021년 6월 30일
0

AWS

목록 보기
2/3
post-thumbnail

AWS서버 생성과 도메인 연결
이번 포스팅에서는 앞 포스팅 내용과 같이 aws에 centos 설치된 서버에
도커 설치 및 웹서버를 설치해본다

💡 도커 설치

도커 공식 홈페이지

위 링크에 나와있는 설치 방법 중 첫번째인 "저장소를 이용하여 설치" 방법 선택
새로 도커를 설치하기 전 도커 저장소를 세팅해야 한다 함
후에 저장소를 통해 설치 및 업데이트 할 수 있다고 함

기존 도커 삭제

시작 전에 기존에 설치된 도커 관련 프로그램을 삭제

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

저장소 세팅

yum-utils 패키지 설치 및 stable 저장소를 세팅
시작하기 전 yum update 부터 해서 그런지 yum update를 해서 그런지
yum-utils가 이미 있다는 메세지가 나왔고 저장소가 추가 됐다는 메세지가 나옴

sudo yum update -y
sudo yum install -y yum-utils
sudo yum-config-manager \
   --add-repo \
   https://download.docker.com/linux/centos/docker-ce.repo

도커 공식 홈페이지 문서를 보면 추가 옵션 중 nightly(차기작 출시를 위해 진행중인 최신버전)
, test(베타 테스트 버전) 버전에 대해 활성화 하는 부분이 있지만 stable 버전만 사용

도커 엔진 설치

1. 환경에 맞는 버전 설치

아래 명령어로는 최신버전을 설치할 수 있지만 불안정하다하여

실행하지 않은 명령 : sudo yum install docker-ce docker-ce-cli containerd.io

아래 명령어로 저장소에 있는 버전 중 환경에 맞는 버전을 선택
버전 선택은 예를 들어 3:20.10.7-3.el8 선택한다면 20.10.7을 입력

[centos@ip-172-31-2-149 ~]$ sudo yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64                3:20.10.7-3.el8                 docker-ce-stable
docker-ce.x86_64                3:20.10.6-3.el8                 docker-ce-stable
docker-ce.x86_64                3:20.10.5-3.el8                 docker-ce-stable
docker-ce.x86_64                3:20.10.4-3.el8                 docker-ce-stable
docker-ce.x86_64                3:20.10.3-3.el8                 docker-ce-stable
docker-ce.x86_64                3:20.10.2-3.el8                 docker-ce-stable
docker-ce.x86_64                3:20.10.1-3.el8                 docker-ce-stable
docker-ce.x86_64                3:20.10.0-3.el8                 docker-ce-stable
docker-ce.x86_64                3:19.03.15-3.el8                docker-ce-stable
docker-ce.x86_64                3:19.03.14-3.el8                docker-ce-stable
docker-ce.x86_64                3:19.03.13-3.el8                docker-ce-stable
Docker CE Stable - x86_64                        60 kB/s |  14 kB     00:00
Available Packages
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

위 명령어의 <VERSION_STRING>에 버전 정보를 넣어

sudo yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io 

2. 도커 서비스 시작 및 활성화

sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker

[centos@ip-172-31-2-149 ~]$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-06-30 15:19:21 UTC; 4min 33s ago
     Docs: https://docs.docker.com
 Main PID: 92696 (dockerd)
    Tasks: 8
   Memory: 123.1M
   CGroup: /system.slice/docker.service
           └─92696 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

자 이제 도커가 설치되었으니 도커에 centos7을 구동시켜 본다
centos7 버전 검색 후 이미지를 받아와서 부팅시키고 실행

시스템 관리를 하기 위해 sbin/init으로 부팅하며 run 명령 후엔 구동된 상태로 있으니
끝나면 다시 putty로 접속하여 docker ps -a로 실행중인 인스턴스를 확인하고 exec 명령을 실행한다
그럼 아래와 같이 컨테이너의 root 계정으로 접속한 것을 확인 가능하다

sudo docker search centos
sudo docker pull centos
sudo docker run -it --name centos8 -v /centos8:/var/www --privileged -p 8080:8080 -p 3307:3307 centos sbin/init

sudo docker ps -a
sudo docker exec -it centos8 bin/bash
[centos@ip-172-31-2-149 ~]$ sudo docker exec -it centos8 bin/bash
[root@ebaac7df0649 /]#

💡 웹서버 설치

웹서버 설치

컨테이너에선 우린 root계정이니 더이상 sudo를 쓰지 않아도 됨
centos 정보를 확인하고 httpd를 설치하고 8080를 사용하도록 설정하고 활성화

yum grouplist
grep . /etc/*-release
rpm -qa *-release
yum update -y
yum install -y httpd

포트 변경

docker 컨테이너를 올릴 때 -p 옵션으로 8080포트를 사용하도록 설정했기 때문에
포트를 바꿔 재기동

 vi /etc/httpd/conf/httpd.conf
 -> Listen 80 을 찾아서 80을 0.0.0.0:8080으로 변경
 
systemctl start httpd
 systemctl enable httpd
 systemctl status httpd
 
 ● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-06-30 16:03:51 UTC; 15s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 307 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"

📝 마치며

AWS EC2 서버에 도커 컨테이너 내 웹서버를 설치했지만 방화벽을 열어줘야 하기 때문에
아직 cyd.kr:8080으로 접속해도 페이지를 접속할 수 없다
다음 포스팅에선 방화벽 오픈하고 MYSQL 설치 및 php로 데이터 출력까지 포스팅 예정

profile
리팩토링만이 살 길이다

0개의 댓글