[MLOps] Docker란?

건너별·2021년 12월 1일
0

MLOps

목록 보기
1/1

docker 매뉴얼

기존 서비스의 문제

1. 서버 환경과 개발 환경이 다를 때 배포의 문제

2. 하나의 운영체제에서 여러 서비스를 운영할 때, 서비스마다 같은 tool 다른 버전이 이용될 경우 충돌이 발생하는 등

ex) 서비스 1에는 python 3.1 버전, 서비스 2 에는 python 3.8 버전에서만 돌아가는 코드
-> 매우 혼란스러움.

3. 가상환경을 다시 세팅하여 컴퓨팅할 수 있으나, 컴퓨터 자원을 나누어 할당하므로 성능이 떨어지게 됨 -> 그다지 좋은 방법은 아님

핵심개념

  • 가상 머신처럼 독립된 실행환경을 만들어주는 것
  • 운영체제를 설치하 것과 유사한 효과를 낼 수 있지만, 실제 운영체제를 설치하지 않기 때문에 설치 용량이 적고 실행 속도 또한 빠름
  • 언급 실행환경을 컨테이너라고 함.

컨테이너?

  • 개별 Software의 실행에 필요한 실행환경을 독립적으로 운용할 수 있도록 기반환경 또는 다른 실행환경과의 간섭을 막고 실행의 독립성을 확보해주는 운영체계 수준의 격리 기술

시작하기

1. clone a repository

  • IDE 환경, 또는 Docker for windows에서
  • The Getting Started project is a simple GitHub repository which contains everything you need to build an image and run it as a container.
    (컨테이너를 run 하고 그곳에서 git clone)

2. Build image

docker build -

3. Run Container


-d : background에서 컨테이너 run 하고
-p : 다음 포트 주소로 배포(80:80)

4. Save and share image

  • Docker hub 에 이미지 업로드(저장 및 공유)

  • 다른 사람들은 Open source로 다운받아서 바로 이용 가능
    -docker tag: target image 를 source image로부터 생성
    -docker push : docker hub로 push(git의 push와 매우 유사)

  • -it: 가상 TTY를 열도록 지정합니다.stdin 이렇게 하면 컨테이너에서 실행되는 동안 aws configure 및 aws help 명령을 사용하여 AWS CLI 버전 2에 입력을 제공할 수 있습니다. 스크립트를 실행하는 경우 -it가 필요하지 않습니다.

결과

도커헙 레포에 아래와 같이 생성 완료.

image

  • container 안에서 사용을 위한 private한 파일 시스템
  • 리눅스 컴퓨터의 특정 상태를 캡쳐해서 박제해 놓은 것
    ex) 리눅스에서 node.js가 설치된 상태를 그대로 냉동해서 박제해 놓은 것
profile
romantic ai developer

0개의 댓글

관련 채용 정보