TIL | Docker 사용하기

송치헌·2021년 11월 5일
0

TIL | Today I Learned

목록 보기
1/4

Docker란?

도커(Docker) 컨테이너는 소프트웨어를 개발, 배포, 운영하기 위한 단순하고 빠른 방법을 제공해주는 컨테이너 가상화 기술이다.

<사진> 기존 가상화 기술과 컨테이너의 비교

Docker Container

  • 도커의 전체적인 모습을 카세트 플레이어로 비유해 보자
  • 도커 이미지는 카세프 테이프이다.
  • 도커 데몬(서버)은 카세트 플레이어이다.
  • 이미지인 카세트 테이프를 카세트 플레이어에서 재생하는 동작 그리고 그로인해 나오는 결과물이 바로 컨테이너이다.
  • 이는 어떤 컴퓨터 혹은 서버에서 도커만 설치되어 있다면, 이미지를 가지고 실행할 수 있다는 의미이다.
  • 컨테이너는 단일 프로세스로서 동작하고, 프로세스의 작업이 종료되면 컨테이너도 종료된다.

Docker 주요 명령어

  • docker ps : 실행중인 컨테이너를 보여주는 커멘드
  • docker ps -a : 실행이 종료된 것을 포함하여 모든 컨테이너를 보는 커멘드 및 옵션
  • docker images : 생성된 혹은 다운로드된 이미지를 보여주는 커멘드
  • docker images -a : 모든 이미지를 보여주는 커멘드 및 옵션
  • ⭐️docker build -t '도커허브에 가입한 계정명'/'이미지명(프로젝트명 권장)':'버전' . : 도커 이미지를 빌드하는 명령어 (Dockerfile 사용)
  • ⭐️docker run --name '컨테이너 명' '이미지명' : 도커 컨테이너를 실행하는 명령어 (완성된 이미지를 사용)
  • ⭐️docker run -it '이미지명'/bin/bash : 도커 컨테이너를 실행시킴과 동시에 컨테이너에 접속해서 쉘을 실행시키는 명령어

VSCode를 이용하여 Dockerfile 만들기

Mac: command + shift + x
Window, Linux: control + shift + x

VSCode에서 위와 같은 명령어를 사용하여 extension을 열고 Docker를 검색하여 설치해 준다.

설치가 완료되면 워크 스페이스에서 Dockerfile이라는 이름으로 파일을 만들게 되면 탭의 아이콘이 Docker아이콘으로 바뀔 것이다.

requirements.txt파일에 gunicorn꼭 넣어주기

  #./Dockerfile
  FROM python:3.9
  #기반이 될 이미지
  
  #작업디렉토리 (default)설정
  WORKDIR /usr/src/app
  
  ## Install packages
  #현재 패키지 설치 정보를 도커 이미지에 복사
  COPY requirements.txt ./
  #설치정보를 읽어 들여서 패키지를 설치
  
  RUN pip install -r requirements.txt
  
  ## Copy all src files
  #현재경로에 존재하는 모든 소스파일을 이미지에 복사
  COPY . .
  
  ## Run the application on the port 8000
  #8000번 포트를 외부에 개방하도록 설정
  EXPOSE 8000
  
  CMD ["gunicorn", "--bind", "0.0.0.0:8000", "<project name>.wsgi:application"]

Docker Build

  • docker build -t <docker 계정명>/<이미지명>:<버전> 를 입력한 후
  • docker images를 해보면 방금 빌드한 이미지가 생성된 것을 알 수 있다.
  • docker run --name <설정할 docker 컨테이너명> -p 8000:8000 <docker 계정명>/<이미지명>:<버전>
    run을 했을 때 서버가 잘 실행된다면 성공
  • docker push <docker 계정명>/<이미지명>:<버전>을 입력하여 docker hub에 이미지를 올린다.
  • 이제 원하는 곳에서 이 이미지를 내려다가 쓰면 끝난다.
  • docker pull <docker 계정명>/<이미지명>:<버전>
profile
https://oraange.tistory.com/ 여기에도 많이 놀러와 주세요

0개의 댓글