[docker] docker 개념 및 이미지 생성
docker란?
리눅스 컨테이너를 만들고 사용할 수 있는 컨테이너화 기술. (리눅스 컨테이너 = 운영체제 수준에서 가상화를 실시하여, os커널을 공유. 가상 머신에 비해 훨씬 가볍다는 장점을 가진다)
도커의 장점
1. 모듈성
2. 계층 및 이미지 버전 제어
3. 롤백
4. 배포 용이
도커 이미지 생성 방법
컨테이너화 하려는 디렉토리 안에 Dockerfile 파일을 작성한다.
github.com/yoshino0705/Driver_Behavior_Recognition
yoshino0705/Driver_Behavior_Recognition
Contribute to yoshino0705/Driver_Behavior_Recognition development by creating an account on GitHub.
github.com
아래 코드는 위 레포지토리를 도커 이미지로 만드는데 사용된 Dockerfile이다.
FROM python:3.7
WORKDIR /app
ADD . /app
RUN pip install -r requirements.txt
EXPOSE 80
CMD ["python","evaluation.py"]
FROM : 이미지 생성시에 사용할 기반 이미지. 해당 예제에서는 python 3.7버전을 사용하였다.
WORKDIR : 작업 디렉토리 지정. 해당 디렉토리를 기준으로 뒤에 나오는 명령어들이 작동한다.
ADD : 파일을 이미지에 추가. 위 예제에서 현재 디렉토리에 있는 모든 파일들을 WORKDIR로 지정해둔 디렉토리에 추가하는 작업을 실행.
RUN : 이미지 생성시에 실행하는 코드. python package 관리에 사용되는 requirements.txt를 사용해 필요한 package들을 설치하도록 작성
EXPOSE : 해당 도커 이미지를 어떤 포트를 통해 외부에 공개할 것인지 명시.
CMD : dockerfile에서 단 한번만 사용가능한 명령. 위 예시처럼 CMD [실행파일,"매개변수1","매개변수2",,,]와 같이 작성하면 셸 스크립트 문법과 관련된 문자를 그대로 실행 파일에 넘겨줄 수 있다.
위와 같이 Dockerfile을 작성한 뒤
$sudo docker build --tag docker_image_name .
위 명령어를 작성해주면 docker image가 생성됨을 확인 할 수있다.