Docker

맨날 헷깔리는 Docker 명령어 옵션들을 예시로 정리해봤다.

docker run -d -i -t --name fast_api -p 8080:80 -v d:/shared:/mnt/d/shared ubuntu:20.04
docker exec -i -t fast_api /bin/bash
docker logs fast_api
docker --tail 10 fast_api
docker logs -f fast_api
docker commit -a author -m message fast_api fast_api:0.2
docker stop fast_api
docker start fast_api
docker ps -a
docker rm fast_api
docker images
docker rmi ubuntu:20.04
  • -i
    • interaction
    • 내가 입력한 내용, 그리고 응답한 내용을 출력해준다. stdin/stdout과 연결
  • -t
    • tty(teletypewriter)
    • 타이핑으로 통신할 수 있도록 해주는 인터페이스
  • requirement.txt 작성
    fastapi>=0.68.0,<0.69.0
    pydantic>=1.8.0,<2.0.0
    uvicorn>=0.15.0,<0.16.0
    
  • Dockerfile 작성
    FROM python:3.9
    WORKDIR /code
    COPY ./requirements.txt /code/requirements.txt
    RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
    COPY ./app /code/app
    CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
    
  • docker build
    docker build -t fast_api:0.3 .
    docker run -d -i -t --name fast_api -p 7759:80 -v d:/shared:/mnt/d/shared fast_api:0.3