Docker는 애플리케이션을 컨테이너(Container)라는 단위로 패키징, 배포, 실행할 수 있는 플랫폼입니다. 컨테이너는 애플리케이션과 그 실행에 필요한 모든 환경(라이브러리, 설정 등)을 포함하고 있어, 어디서든 동일하게 실행됩니다.
컨테이너 실행에 필요한 설정과 파일을 포함하는 읽기 전용 템플릿입니다.
Dockerfile을 작성합니다. 이미지로부터 생성된 실행 가능한 인스턴스입니다.
이미지를 생성하기 위한 설정 파일입니다.
이미지를 저장하고 공유하는 저장소입니다.
# 이미지 다운로드
docker pull [이미지 이름]
# 로컬에 저장된 이미지 확인
docker images
# 컨테이너 실행
docker run [이미지 이름]
# 실행 중인 컨테이너 확인
docker ps
# 모든 컨테이너(종료된 컨테이너 포함) 확인
docker ps -a
# 컨테이너 중지
docker stop [컨테이너 ID]
# 컨테이너 삭제
docker rm [컨테이너 ID]
# Dockerfile이 있는 디렉토리에서 실행
docker build -t [이미지 이름] .
# 베이스 이미지 설정
FROM openjdk:11
# 애플리케이션 실행에 필요한 파일 복사
COPY ./app.jar /usr/src/app.jar
# 컨테이너 실행 시 기본으로 실행할 명령어
CMD ["java", "-jar", "/usr/src/app.jar"]
docker build -t spring-app .docker run -p 8080:8080 spring-apphttp://localhost:8080으로 접근. 여러 컨테이너를 한꺼번에 관리하기 위한 도구입니다.
예를 들어, Spring 애플리케이션과 MySQL 데이터베이스를 함께 실행할 수 있습니다.
docker-compose.yml)version: "3.8"
services:
app:
build: .
ports:
- "8080:8080"
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test