MLops/Container

[Docker] . 설치 부터 배포까지 초간단 (feat.Flask)

Acdong 2021. 9. 22. 18:48
728x90

도커 설치하기

Linux

curl -s https://get.docker.com/ | sudo sh

명령어를 입력하고 패스워드를 입력하면 리눅스 배포판에 따라 자동으로 최신번전의 도커를 설치

 

ubuntu 유저 권한 추가

sudo usermod -aG docker ubuntu

 

도커 권한 변경

sudo chmod 666 /var/run/docker.sock

error : Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

 

 

Mac OS or Windows

- Docker for mac / Docker for windows - 가장 쉽고 빠르게 사용할 수 있는 방법

GUI 의 형태로 홉페이지에서 다운받아서 설치 진행

 

* 도커는 리눅스를 지원하기 때문에 Mac OS와 Windows에 설치되는 Docker는 가상 머신에 설치됨

   MacOS는 xhyve를 사용하고 Windows는 WSL 2를 이용하여 설치 가능

 

도커 설치 확인

docker version

 

도커 이미지 생성하기

*본 포스트에서는 도커 허브를 사용하지 않습니다. ( 도커 허브는 소스 내용이 공개됨 )

 : 도커 허브를 사용하면 실제 존재하는 소스코드 및 다른 파일들 까지도 한 번에 처리할 수 있음

 

Git Clone으로 소스코드를 받아 온 뒤에 도커 이미지를 생성하고 서버를 실행합니다.

 

웹 어플리케이션 프로젝트 소스파일을 Git Clone 합니다.

git clone https://github.com/username/myproject.git

 

도커 이미지는 Dockerfile 을 통해 생성이 가능합니다.

 

Dockerfile : 직접 하나하나씩 처리해줘야하는 것들을 한 번에 몰아서 정리하여 빌드함. (예시 python flask)

# 베이스 이미지
FROM ubuntu:20.04

#설치시 질문 안나오게 설정
ARG DEBIAN_FROMTEND=noninteractive

# apt 업데이트
RUN apt update

# 패키지 설치
RUN apt install -y build-essential curl git g++

# 파이썬 설치
RUN apt install -y python3 python3-pip

# 소스코드 복사
COPY . /opt/myproject

#작업 폴더 설정
WORKDIR /opt/myproject

# 파이썬 패키지 설정
RUN pip3 install -r requirements.txt

# 실행 파일 설정
CMD ["python3","server.py"]

 

Dockerfile을 실행하는 방법

docker build -t myproject:1 .

build 명령어를 사용하면 자동으로 Dockerfile을 찾아서 이를 빌드합니다.

 

  "  :   " 기호는 다음에 나오는 숫자는 tag를 의미함. 

  "  .    "기호는 전체를 의미

 

도커 컨테이너 실행

docker run --name "컨테이너ID" -d -p 내부포트:외부포트 "이미지명"

docker run --name myproject -d -p 5100:5100 myproject:0.1

 

반응형