106일차 - 도커 (이미지, 컨테이너)

Yohan·2024년 7월 30일
0

코딩기록

목록 보기
149/156
post-custom-banner

도커

도커 이미지

  • JDK, DB등이 들어있는 컨테이너를 생성하기 위한 읽기 전용 템플릿
    -> 컨테이너를 돌리기위해 경량화된 템플릿
  • 여러 계층으로 구성

도커 이미지 역할

  • 일관된 환경을 제공하여 애플리케이션이 어디서나 일관성 있게 실행되도록 해줌

도커 컨테이너

  • 도커 컨테이너는 도커 이미지를 실행한 상태
  • 애플리케이션과 그 종속성을 함께 패키징한 독립적인 실행 환경
  • 컨테이너는 소프트웨어가 어디서나 일관되게 실행될 수 있도록 하며, 필요한 모든 파일과 라이브러리를 포함

도커 이미지와 도커 컨테이너

  • 도커 이미지는 애플리케이션의 설계도
  • 도커 컨테이너는 이 설계도로 실제로 만들어진 실행 중인 애플리케이션

도커 이미지 생성

  • Dockerfile은 application.yml같은 설정파일
    -> 이미지를 생성할때 ~~ 이렇게 해라 라고 설정
  • Dockerfile 이라는 이름으로 생성
  • Dockerfile
# 베이스 이미지로 Node.js를 사용
# version 현재 20
FROM node:20

# 애플리케이션 디렉토리 생성
WORKDIR /usr/src/app

# 애플리케이션 종속성을 설치
COPY package*.json ./

RUN npm install

# 애플리케이션 소스 복사 (점 두개를 띄어쓰기를 통해 작성.  ..이 아니고 . . )
COPY . .

# 애플리케이션이 바인드할 포트 정의
EXPOSE 8585

# 애플리케이션 실행 명령어
# node app.js
CMD ["node", "app.js"]

이미지 생성

  • 터미널에 docker build -t <이미지 이름> . (이미지 생성)

빌드된 이미지를 사용하여 도커 컨테이너를 실행

  • 터미널에 docker run -d -p 8585:8585 <이미지 이름> (컨테이너 생성)
    • -d : 컨테이너를 백그라운드에서 실행
    • -p : 호스트와 컨테이너의 포트를 매핑
    • 앞의 포트번호는 호스트포트
    • 뒤의 포트번호는 도커 컨테이너 포트, Dockerfile에 지정한 포트번호
    • localhost:8585에 접속하면 서버 열림

도커 컨테이너 삭제

  • docker rm <컨테이너 ID>

도커 이미지 삭제

  • docker rmi <이미지 이름>

도커 컨테이너 이름 지정

  • docker run -d -p 8585:8585 --name <이름> <이미지명>
profile
백엔드 개발자
post-custom-banner

0개의 댓글