이 글은 Docker 입문 강의의 내용을 요약/정리한 것입니다.
너무 많은 글에서 나와 있어 생략하고싶지만.. 보통 많은 글에서 가상환경과 도커를 비교하는 내용이 많이 나와 있습니다. 그러나 사실 "도커"를 사용해야 하는 이유는 잘못된 표현입니다. "컨테이너"를 사용해야하는 이유입니다. 도커는 컨테이너를 관리하기 위한 도구일 뿐입니다.
docker desktop
을 설치하자.아래와 같은 fastAPI 파일을 실행시킨다고 가정해보자.
.app/main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
이를 위해 해야하는 작업은?
brew install python
(python 설치)pip install "fastapi[all]"
(fast API 설치)uvicorn main:app --reload
http://localhost:8000 에 들어가서 화면을 확인해보자.
-> 결과 : 서버는 돌아간다. 하지만, 버전관리해야하는 1)파이썬, 2)fastapi, 3) 기타 여러개.. 의 디펜던시 "로컬 머신"에 발생한다. 이 친구들은 작업마다 따로 관리해줘야 할 필요가 있다.
./Dockerfile
FROM tiangolo/uvicorn-gunicorn-fastapi
COPY ./app /app
필요한 명령어
1. Dockerfile 작성
2. docker build -t my_image .
(이미지 빌드)
3. docker run -p 80:80 my_image
(컨테이너 실행)
로컬에서 한 작업보다 물론 간단하지는 않지만,
로컬머신에서 여러 디펜던시를 관리해줘야할 필요가 없다는 점이 매우 매력적이고
그렇게 난이도가 어렵지도 않다.
이제 http://localhost:80 로 접속해서 Hello World! 화면을 확인해보자.