FastAPI 애플리케이션을 Docker 이미지로 만들기
우분투 베이스 이미지 사용
Dockerfile
실행 명령어
docker build -t fastapi-ubuntu -f Dockerfile-Ubuntu .
docker run -d -p 8000:8000 fastapi-ubuntu
파이썬 베이스 이미지 사용
Dockerfile
실행 명령어
docker build -t fastapi-python -f Dockerfile-Python .
docker run -d -p 8001:8000 fastapi-python
아파치 웹 서버 컨테이너 구축
Dockerfile
실행 명령어
docker build -t apache-web -f Dockerfile-Apache .
docker run -d -p 8080:80 apache-web
http://localhost:8000/hello.html
다단계 도커 빌더
main.go
Dockerfile
빌드 단계 (1단계: builder)
- 이 단계에서는 실제로 go build -o app 명령이 실행됩니다.
- 결과로 app 실행 파일이 생성되고, 이 파일은 /app/app 경로에 존재합니다.
- 하지만 이 1단계 이미지는 최종 컨테이너에서 사용되지 않습니다.
실행 단계 (2단계 최종 이미지)
- 최종 이미지는 alpine처럼 가볍고 필요한 것만 포함된 베이스 이미지에서 시작합니다.
- 여기서 COPY --from=builder 명령을 통해 빌더 스테이지에서 만든 app 실행파일만 복사합니다.
- 즉, 빌드 도구(go 등)는 전혀 포함되지 않고, 실행에 필요한 최소 실행파일만 남습니다.
실행 명령어
docker build -t go-multi -f Dockerfile-MULTI .
docker run go-multi
실행 결과
단계 내용
1단계 (builder) | Go로 애플리케이션 빌드 (컴파일 포함) |
2단계 (최종 이미지) | 빌드된 실행파일(app)만 가져와서 실행에 사용 |
결과 | 이미지 용량 감소, 빌드 도구 제외로 보안성 향상 |
'Docker' 카테고리의 다른 글
Docker - 네트워크와 Compose로 컨테이너 연결하기 (0) | 2025.06.18 |
---|---|
Docker - 데이터 관리(Volume, Bind Mount) (1) | 2025.06.18 |
Docker - RUN, CMD, ENTRYPOINT, EXPOSE 명령어 차이 (0) | 2025.06.17 |
Docker -i, -t, -d 옵션 (2) | 2025.06.16 |
Docker - Dockerfile을 이용한 도커이미지 빌드 (0) | 2025.06.16 |
Docker - 설치 & 컨테이너 실행 (0) | 2025.06.16 |