isPowerfulBlog
[Docker] Dockerfile, 이미지 빌드 및 컨테이너 실행 본문
오랜만에 다시 도커를 직접 쓸 일이 생기면서.. 간단한 명령어와 도커파일에 대해 정리하게 되었다.
(모든 인프라가 구축되어있는 상황에서 작업하다가 오랜만에 해보려니 ㅎㅎ..ㅎ.ㅎ..ㅠㅠ기본 명령어도 기억 안 남)
이미지 빌드
docker build -t {image_name} {app_path}
- app_path는 이미지로 말고싶은 스크립트들이 있는 경로이다.
- 보통 Dockerfile을 app 폴더 내의 루트 경로에 작성하고
docker build -t {image_name} .
이런 식으로 하면 이 폴더 내의 모든 스크립트들이 이미지로 싸악 말린다.
컨테이너 실행
docker run -p 8000:8000 --name {container_name} {image_name}
-p
옵션으로 포트포워딩을 해줄 수 있다.
나의 이 FastAPI앱을 로컬에서 실행했었을 때는http://127.0.0.1:8000
이런식으로 로컬호스트의 8000번 포트에서 앱을 실행했다.
이걸 도커에서 실행하면 도커 내의 로컬호스트의 8000번 포트에서 실행이 된다.
나는찐 내 데스크탑 로컬호스트
에서도커 내 로컬호스트의 포트 8000번
에 접근하고 싶은거다.
그래서 내 로컬호스트의 8000번 포트를 도커 내 로컬호스트의 포트 8000번으로 연결해주세요 하는게 저 포트포워딩이다.
고럼 내 로컬호스트 8000번으로 접속하면 -> 도커 내 로컬호스트 포트 8000번으로 감.--name
옵션으로 컨테이너의 이름을 지정해준다. (필수 아님)
Dockerfile
# Use the official Python image as a base
FROM python:3.9
# Set the working directory in the container
WORKDIR /
# Copy the current directory contents into the container at /app
COPY . /app
# Copy requirements.txt separately and install dependencies
COPY requirements.txt .
RUN pip install -r requirements.txt
# Set environment variables
ENV OPEN_API_KEY=''
# Expose the port that uvicorn will run on
EXPOSE 8000
# Command to run uvicorn with auto-reload
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000", "--reload"]
'Infra' 카테고리의 다른 글
[AWS] Secrets manager로 AWS 리소스 접근하기, AWS CLI (0) | 2024.03.27 |
---|---|
[Cloud] VPC, VPN이란? (0) | 2024.01.16 |
[Knative] kind로 knative 클러스터 구축하기 | Ubuntu 22.04 (0) | 2023.06.23 |
[Kubernetes] Knative란? (0) | 2023.06.04 |
[Kubernetes] Kubernetes Tutorial for Beginners 정리(1) (0) | 2023.06.03 |