MLOps_2 Docker

ilysm·2023년 4월 11일

docker 장점

  • 매번 새로운 서비스를 만들 때마다 새로운 서버를 사고 설정할 필요가 없다


web server나 Database가 어떠한 영향을 주지 않고 격리 되어 실행됨.
host : 운영체제가 있는 것
필요한 라이브러리와 실행파일이 각각 따로 포함되어 있음
저장공간에 대해 걱정이 없음

Hypervisor 하나의 운영체제 안에 Guest OS가 있는 것
Host Opesrating System을 기반으로 컨테이너화
시간적으로 많이 세이브 됨

Docker 이점

  • 독립된 공간에서 실행
  • Build Once, Run Anywhere(도커 패키징된 방식을 통해 )

Containerization

  • 컨테이너화 해주는 것
  • 만들고자 하는 어플리케이션, 환경에 대해 패키징 하는 것

Docker -컨테이너 기술의 발전

컨테이너 : 호스트와 다른 컨테이너로 부터 격리된 시스템




Docker 사용법

https://docs.docker.com/get-started/
공식 사이트 참조

도커 컨테이너 다루기 (생성 실행 중지 삭제)


도커 컨테이너 시작

혹은 docker pull nginx:1.21 를 실행하면 이미지가 불러와짐


:을 기준으로 호스트:컨테이너 네임

docker stop $(docker ps -a -q) # 모든 컨테이너 종료

우리가 만든 컨테이너의 이름을 부여해줄 수 있음

Entrypoint와 Command

  • entrypoint와 command를 쓰는 이유
  • 머신러닝 모델 소스코드를 entrypoint와 command를 주지 않으면 생성만 되지 실행이 안됨
  • 모델 실행뿐만 이나리

docker run --entrypoint echo ubuntu hello ubuntu # hello ubuntu 출력하기

환경 변수

환경변수는 이와 같이 실행 할 수 있음

명령어 실행

이름 지정해서 실행하기

  • docker run -d --name my-nginx nginx

  • 컨테이너 내부로 들어가기

Network

  • 포트간 필요한 일을 하기 위해 컨테이너에 있는 포트
  • expose는 바인딩이 안됨 단순 문서화 용도

예시

  • 포트 8090으로 연결

  • local:8090으로 접속

  • 포트 지정하지 않고 연결할 시 랜덤(52237)로 연결

  • expose를 적는다면 만들어지지만 local 연결이 불가함

volume


#컨테이너 변경 사항 저장

  • 볼륨연결 안될 시 불편한 점: 내 pc에서 업데이트 시키며 수정해도 바로 반영이 되어야 함. 볼륨을 연결 안할시 수정을 해도 컨테이너 내부에 반영이 안됨
  • Host vloume = : 기준 좌측은 호스트 우측은 컨테이너
  • mount 해준 후 inspect를 통해 확인 가능하다.

  • mysql 사용하려는 컨테이너 만들기


log 확인하기

위 명령어를 통해 어떤 일이 일어나고 있는지 확인 가능하다.

profile
한걸음씩 배워나갑니다

0개의 댓글