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 |
