도커
도커 이미지
- 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 run -d -p 8585:8585 --name <이름> <이미지명>