개발 환경도 프로덕션 환경도 Docker

작업환경



■ 전제
- Docker for Mac 설치됨
- AWS EC2 인스턴스 생성

■환경
- macos high sierra 10.13.6
- EC2 Amazon Linux AMI release 2018.03

왜 관심을



올해의 1월~4월까지는 개발 환경의 구축의 일을 할 때에는 차분을 조사해 프로덕션 환경에 맞추는데 많은 시간을 사용했습니다. Docker/Kubernetes 실습 컨테이너 개발 입문 이라고 하는 책을 읽고 개발 환경도 프로덕션 환경도 Docker로 하면 환경 차이 문제로부터의 탈각할 수 있는 것을 알고, 이미 벌써일지도 모릅니다만 앞으로는 이것이라고 생각했습니다! ! !

해설



전체 흐름


  • Docker for Mac에서 개발 환경을 만들어 개발을 한다.
  • 인프라와 애플리케이션이 포함된 상자와 같은 컨테이너 이미지를 만들어 Docker Hub로 푸시합니다.
  • EC2 Linux의 Docker를 사용하여 Docker Hub로 푸시한 이미지를 가져와서 이를 사용하여 프로덕션 환경을 만듭니다.
    ※ 개발 환경은 Docker for Windows라면 프로덕션 환경은 Linux 환경에서 잘 가지 않는 정보는 있었습니다만, Docker for Mac에서는 문제 없게 할 수 있었습니다.

  • 개발 환경


  • 디렉토리 구성

  • delusion_quiz
    응용 프로그램 엔티티
  • Dockerfile
    Docker 컨테이너의 구성 내용을 함께 설명하는 파일
  • docker-compose.yml
    yaml에서 Docker 컨테이너에 대한 시작 옵션을 설명하는 파일


  • Dockerfile
        FROM php:7.0.21-apache
        COPY ./delusion_quiz/ /var/www/html
    

    docker-compose.yml
        version: "3"
        services:
          echo:
             build: .
             ports:
             - 80:80
    

    이상의 조건으로 아래와 같은 커멘드를 실행하면 os, 미들웨어, php의 어느 것도 갖추어져 어플리케이션이 움직이게 된다docker-compose up
  • 이미지를 만들어 Docker Hub로 푸시
    1. 컨테이너 확인docker ps -a2. 컨테이너를 이미지에 커밋docker commit 092723cefd67 iiwao/delusion_quiz:version13. 커밋한 이미지를 확인docker image ls4. 이미지를 Docker Hub로 푸시docker image push iiwao/delusion_quiz:version1

  • 이상으로 Docker Hub에 이미지가 업된다

    프로덕션 환경



    EC2 Linux의 docker에서 다음을 수행합니다.
  • Docker Hub에서 이미지 가져오기docker pull iiwao/delusion_quiz:version1
  • 이미지를 컨테이너에 빌드docker build -t iiwao/delusion_quiz .
  • Docker 실행 환경의 80 포트를 통해 HTTP 요청을 받을 수 있도록 합니다.docker run -dit -p 80:80 iiwao/delusion_quiz:version1

  • 이상으로 간단한 개발 환경도 프로덕션 환경도 Docker가 완성
    EC2에 배포한 애플리케이션

    좋은 웹페이지 즐겨찾기