혼자공부중
공부하는 블로그
혼자공부중
전체 방문자
오늘
어제
  • 분류 전체보기 (111)
    • 자격증 (49)
      • 정보처리기사 실기 (49)
    • JAVA (18)
    • DB (0)
    • 알고리즘 문제 풀이 (11)
      • 프로그래머스 (11)
    • Front (0)
      • HTML (0)
      • CSS (0)
      • Javascript (0)
    • 패스트캠퍼스 강의 (33)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 2022정보처리기사실기
  • 애플리케이션테스트
  • 반복문
  • 정보처리기사 필기
  • 관계형데이터베이스
  • 정보처리기사 실기
  • 정보처리기사 필기 정리
  • 정보처리기사
  • 상속
  • 코딩테스트
  • SQLD
  • 데이터모델
  • 메소드
  • 2022정보처리기사
  • 자바
  • 시나공
  • 객체지향
  • 정보처리기사 실기 정리
  • Java
  • 프로그래머스
  • 인터페이스
  • 수제비
  • 배열
  • UI
  • 패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완
  • 데이터베이스
  • 2022정보처리기사필기
  • 변수
  • 알고리즘
  • DBMS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
혼자공부중

공부하는 블로그

[26일차] 50일 포트폴리오 챌린지
패스트캠퍼스 강의

[26일차] 50일 포트폴리오 챌린지

2023. 9. 2. 09:17
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/43z0P6S 

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr



26일차

도커 및 도커 컴포즈 소개

도커란?

  • 컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고, 배포까지 실행할 수 있도록 설계된 도구이며 컨테이너 기반의 오픈소스 가상화 플랫폼
  • 일반 컨테이너 개념에서 물건을 손쉽게 운송해주는 것처럼 어플리케이션 환경에 구애받지 않고 손쉽게 배포 관리를 할 수 있게 해준다
  • 컨테이너 기반 배포 방식은 구글을 비롯해 대부분 서비스 회사가 컨테이너로 서비스 운영 중
  • 따라서 AWS, Azure, Google Cloud 등 어디서든 실행 가능하다

도커 왜 사용해야 할까?

  • 도커를 왜 굳이 사용해야 할까?
  • 똑같은 일을 하는 2대의 서버가 있다 해도, A 서버는 1년 전에 구성했고 B서버는 이제 막 구성했다면 운영체제부터 컴파일러, 설치된 패키지까지 완벽하게 같기는 쉽지 않다
  • 이러한 차이가 문제를 발생시킬 수 있다
  • A서버는 되는데 B서버는 왜 안되지?
  • 도커는 서버마다 동일한 환경을 구성해주기 때문에 이러한 문제를 해결할 수 있다!
  • 동일한 환경을 구성하기 때문에 auto scaling에 유리

도커와 기존 가상화 기술(VM) 차이

  • 한 대의 서버에서 하나의 어플리케이션만 운영하는 전통적인 방식에서 하이퍼바이저 기반 가상화 등장
  • 하이퍼 바이저는 호스트 시스템(윈도우, 리눅스 등)에서 다수의 게스트 OS(가상머신)을 구동할 수 있게 하는 소프트웨어
  • 각 VM마다 독립적으로 동작
  • 도커는 하이퍼 바이저 구조를 토대로 등장했으며, VM보다 훨씬 가볍게 동작하기 때문에 성능에 유리!

도커의 컨테이너와 이미지

  • 이미지란 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정과 같은 응용프로그램을 실행 하는데 필요한 모든 것을 포함하는 패키지이다.
  • 이미지는 Github와 유사한 서비스인 https://hub.docker.com 을 통해 버전 관리
  • 컨테이너란 도커 이미지를 독립된 공간에서 실행할 수 있게 해주는 기술

도커 파일 이란?

  • Dockerfile이란 도커 이미지를 구성하기 위해 있어야할 패키지, 의존성, 소스코드 등을 하나의 file로 기록하여 이미지화 시킬 명령 파일
  • 즉, 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 더 이상 새로운 서버가 추가되면 의존성 파일을 컴파일하고 이것 저것 설치할 필요가 없다

도커 파일 주요 명령어

  • FROM
    • 새로운 이미지를 생성할 때 기반으로 사용할 이미지를 지정 (이미지 이름:태그)
    • jdk 11이 있는 컨테이너 사용
    • FROM openjdk:11
  • ARG
    • 이미지 빌드 시점에서 사용할 변수 지정
    • ARG JAR_FILE=build/libs/app.jar
  • COPY
    • 호스트에 있는 파일이나 디렉토리를 Docker 이미지의 파일 시스템으로 복사
    • COPY ${JAR_FILE} ./app.jar
  • ENV
    • 컨테이너에서 사용할 환경 변수 지정
    • TimeZone 환경 변수
    • ENV TZ=Asia/Seoul
  • ENTRYPOINT
    • 컨테이너가 실행되었을 때 항상 실행되어야 하는 커맨드 지정
    • ENTRYPOINT [”java”, “-jar”, “./app.jar”]

도커 컴포즈란?

  • Docker Compose란 멀티 컨테이너 도커 어플리케이션을 정의하고 실행하는 도구
  • Application, Database, Redis, Nginx 등 각 독립적인 컨테이너로 관리한다고 했을 때 다중 컨테이너 라이프 사이클을 어떻게 관리해야 할까?
  • 여러 개의 도커 컨테이너로 부터 이루어진 서비스를 구축 및 네트워크 연결, 실행 순서를 자동으로 관리
  • docker-compose.yaml 파일을 작성하여 1회 실행하는 것으로 설정된 모든 컨테이너를 실행

jar 파일 이름 바꾸기

[Mac OS 환경 명령어]

./gradlew build

위 명령어로 빌드를 실행해 보면

/build/libs 경로에 jar 파일 2개가 생성된다.

-plain이 붙은 jar파일은 의존성을 모두 제거한 파일이기 때문에 plain이 붙지 않은 파일의 이름을 바꿔준다.

build.gradle에 아래 설정으로 부팅가능한 jar파일의 이름을 ‘app.jar’로 바꿔준다

bootJar{
    archiveFileName ='app.jar'
}

이후 clean을 통해 빌드 파일을 모두 지워준 후 다시 빌드

./gradlew clean
./gradlew build

위와 같이 app.jar로 빌드된다.

저작자표시 변경금지 (새창열림)

'패스트캠퍼스 강의' 카테고리의 다른 글

[28일차] 50일 포트폴리오 챌린지  (0) 2023.09.04
[27일차] 50일 포트폴리오 챌린지  (0) 2023.09.03
[25일차] 50일 포트폴리오 챌린지  (0) 2023.09.01
[24일차] 50일 포트폴리오 챌린지  (1) 2023.08.31
[23일차] 50일 포트폴리오 챌린지  (0) 2023.08.30
    '패스트캠퍼스 강의' 카테고리의 다른 글
    • [28일차] 50일 포트폴리오 챌린지
    • [27일차] 50일 포트폴리오 챌린지
    • [25일차] 50일 포트폴리오 챌린지
    • [24일차] 50일 포트폴리오 챌린지
    혼자공부중
    혼자공부중
    대단한 목적보다는 혼자 공부하는 것에 의미를 두려고 합니다.

    티스토리툴바