240612 AWS

PangE·2024년 6월 13일

교안 237~253

Tomcat에 자바 앱 배포하기

최신 버전 삭제하기

이클립스에서 변경된 환경에 맞게 다시 빌드한 자바 웹 앱을 “파일 질라”를 이용해 다음과 같이 EC2 서버에 업로드 하자.


도커 이미지 만들기

앞에서 Docker Hub로부터 Docker Image를 다운로드 받아서 컨테이너를 생성하고 관
리하는 방법에 대해서 알아 보았다. 앞에서 사용한 이미지는 다른 사람이 만들어 공유한
Docker Image를 그대로 사용했는데 이번에는 본인이 원하는 기능을 구성하여 Docker
Image를 만드는 방법에 대해서 알아보자.
커스텀 이미지(Custom Image)를 만드는 방법은 크게 두 가지가 있다. 첫 번째는 기존
이미지를 가지고 컨테이너를 생성한 후 실행된 컨테이너에 원하는 기능을 추가하고 그
상태 그대로 이미지로 만드는 방법이 있다. 또 다른 방법은 Dockerfile에 이미지를 만들
기 위한 스크립트를 작성하고 이 Dockerfile을 통해 이미지를 빌드하는 방법이 있다.
도커는 레이어를 활용한 파일 시스템으로 Docker Image도 아래와 같이 레이어를 구성
해서 기존 이미지에 기능을 추가한 새로운 이미지를 만들 수 있다.

Dockerfile

Dockerfile은 Docker Image를 만들기 위한 명령을 스크립트로 작성해 놓은 파일이며
이 파일을 기반으로 이미지를 빌드 할 수 있다. Dockerfile을 통해서 필요한 이미지를
만들 수 있기 때문에 나만의 이미지를 만들고 배포하기 위해서 많이 사용되는 기능이다.
Dockerfile은 일반적인 텍스트 파일 형식으로 작성하며 Dockerfile에서 사용하는 기본
문법은 다음과 같이 명령과 그 명령에 대한 값(인수)을 공백으로 구분해 작성하며 앞쪽
에 명령은 관례적으로 대문자를 사용한다.

Dockerfile 명령어

Dockerfile01

먼저 아래를 참고해서 Dockerfile을 이용한 Docker Image 만들기 실습을 위해서
DockerFiles라는 디렉터리를 만들고 Dockerfile을 작성해 이미지를 만들어 보자

Dockerfile02

Dockerfile03

도커 컴포즈

도커 컴포즈(Docker Compose)는 여러 컨테이너를 하나의 서비스로 정의해서 컨테이
너의 묶음으로 관리할 수 있도록 작업 환경을 제공하는 편리한 툴이다.
웹 서비스를 위해서는 일반적으로 프런트엔드, 백엔드, 데이터베이스 서버 등이 필요한
데 이렇게 웹 서비스에 필요한 구성 요소를 여러 개의 컨테이너로 구축해서 실행하고
관리하기 위해서는 RUN과 같은 명령을 여러 번 사용해야 하는데 이런식으로 일일이 여
러 개의 컨테이너를 실행하고 관리하기에는 매우 번거롭다. 이럴 때 여러 개의 컨테이너
를 하나의 서비스로 정의해서 컨테이너의 묶음으로 관리한다면 더 편리하게 사용할 수
있을 것이다. 이를 위해서 도커 컴포즈는 컨테이너 기반의 서비스 개발과 지속적 통합
(CI, Continuous Integration)을 위해서 여러 개의 컨테이너를 묶어서 하나의 프로젝트
로 관리할 수 있는 작업 환경을 제공한다.
다시 말해 도커 컴포즈는 시스템 구축과 관련된 여러 개의 컨테이너와 그 컨테이너를
운영하는데 필요한 명령을 하나의 파일에 정의하고 이렇게 정의한 파일을 이용해 명령
어 한번에 시스템 전체를 실행하고 종료와 폐기까지 할 수 있도록 지원하는 도구이다.
도커 컴포즈는 시스템 구축에 필요한 설정을 YAML 포맷으로 작성하며 이 설정 파일은
도커 엔진의 RUN 명령어의 옵션을 그대로 사용할 수 있으며 각 컨테이너의 의존성, 네
트워크, 볼륨 등을 함께 정의할 수 있으며 설정 파일에 정의된 컨테이너의 수를 유동적
으로 조절 할 수도 있다. 그래서 시스템 구축에 필요한 컨테이너 수가 많아지고 정의해
야 할 옵션이 많아지면 도커 컴포즈를 사용하는 것이 좋다

0개의 댓글