[서버] 3: AWS EC2에 Docker설치, dockerfile 테스트하기

 

1️⃣  Jupyter에서 Docker 설치 및 파일 생성


jupyter접속 후 apt 업데이트

: df -h //메모리 확인
: sudo apt update //apt 업데이트 
  • apt를 이용하여 docker를 설치할 것이기 때문에, apt를 먼저 업데이트 시켰음

 

관련 툴 설치 후 docker 설치

: sudo apt install apt-transport-https
: sudo apt install ca-certificates
: sudo apt install curl
: sudo apt install software-properties-common

: curl -fsSl https:/download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
: sudo add-apt-repository "deb [arch=amd64] <https://download.docker.com/linux/ubuntu> bionic stable"
: sudo apt update
: apt-cache policy docker-ce
: sudo apt install docker-ce
  • 도커는 설치하면 자동으로 시스템 서비스로서 등록이 된다
    • 언제 어디서나 도커를 이용할 수 있을 거란 얘기.
    • sudo systemctl status docker // 실행중인 docker 확인가능

 

HelloWorld로 도커 테스트하기

docker pull hello-world  // 이미지 가져오기
docker images // 이미지 확인
docker run hello-world //컨테이너 구동
docker ps -a // 구동중인 컨테이너 확인
docker rm [컨테이너ID] //삭제

 

2️⃣  Jupyter에서 Docker파일 다루기


이제 직접 Dockerfile만들기

FROM ubuntu:18.04
MAINTAINER KGRYURY <mandari...@gmail.com>

RUN apt-get update
RUN apt-get install -y apache2 # install apache web server (only 'yes')

EXPOSE 80

CMD ["apachectl", "-D", "FOREGROUND"]
                                                                                         9,38          All
  • 우분투 버전 명시함
  • 제작자의 정보를 적어줌
  • 실행할 명령어를 작성하였음
    • 이때, ‘-y’ 옵션을 달면 중간에 나오는 질문들에 ok싸인을 보내겠다는 의미를 한다
  • 80포트를 이용
    • 기본적으로는 apach웹 서버는 기본포트로 80번을 사용한다
    • 컨테이너를 실제로 구동하는 서버에서는 실제로 몇 번 포트를 실행할 것인지 설정하게 되어있다
    • 80번 포트를 열 수 있도록 명시해준다
  • CMD에서 데몬상태로 만들어 주기 위한 명령어를 삽입한다
    • 특정한 컨테이너는 특정한 작업 후 종료되는 것이 기본 설정이다
    • 아파치가 항상 실행중인 상태로 만들기 위한 명시가 필요하므로 작성

 

도커 이미지 빌드 및 실행시키기

docker build -t example . // 도커를 빌드한다 -t [이미지 이름]으로 현재경로에
docker images //만든 이미지 확인
docker run -p 80:80 example // 이미지를 구동시키기
  • 80:80은, 호스트port(현재서버): 컨테이너port(도커서버)를 명시에주는 것이다

 

3️⃣ 실행화면 확인하기


AWS에서 해당 포트(80)를 위한 보안설정 해주기

  • 보안탭 > 방화벽 설정

  • 인바운드 규칙 편집 > HTTP의 80포트 설정 >규칙 저장호스트IP:포트번호(80) 접속하여 확인