본문 바로가기
  • 머킹이의 머신로그
AI

Docker 튜토리얼

by 머킹 2024. 8. 28.
728x90

 

안녕하세요 머킹입니다.

오늘 도커에 관해서 열심히 배웠는데 엄청 유용하더라구요.

시간이 너무 짧아서 아쉬웠어요.

 

도커는 물론, 쿠버네티스도 배워보고 싶네요.

 


Docker 정리 문서

가상화

  • 가상화: 물리적 하드웨어 리소스를 논리적으로 나누어 여러 개의 독립된 운영체제와 애플리케이션을 동시에 실행할 수 있게 하는 기술
  • 하나의 컴퓨터를 여러 대의 컴퓨터처럼 사용 가능
  • 파이썬 가상환경: 아나콘다가 개발됨 (버전별로 가상화 가능)
  • VMware, VirtualBox: 운영체제를 격리화하여 윈도우 내에서 리눅스를 사용 가능

컨테이너 vs 가상머신

  • 컨테이너: 자원을 효율적으로 사용, 같은 OS만 사용 가능 (운영체제 의존성 존재)
  • 가상머신: 서비스 연결이 어려움, 포트포워딩 및 볼륨 매칭 필요
  • 도커: 가상머신과 컨테이너의 장점을 결합, 하드웨어와 운영체제 의존성을 제거한 기술

아나콘다 가상환경

  • conda create -n [가상환경이름] python=[원하는 버전] 명령어로 가상환경 설치

도커의 구성 요소

  • 도커 파일: 애플리케이션의 환경 설정 및 설치 스크립트를 정의한 파일
  • 도커 이미지: 도커 파일을 기반으로 생성된 실행 파일
  • 도커 컨테이너: 도커 이미지를 실행한 상태

도커 파일, 이미지, 컨테이너 생성

  • 도커 파일 생성 시 기존 이미지를 가져와서 새로운 이미지를 생성함
  • apt-get install vim -y: 우분투에서 vim 설치
  • ENV TEST: 환경변수 설정
  • COPY: 도커 내부에 파일 복사
  • WORKDIR: 작업 디렉토리 설정
  • 도커 파일에서 도커 이미지를 생성함
  • 예제 명령어:
    • docker build -t [이미지이름:버전] -f [도커파일경로] . --no-cache
    • docker run -d --name [컨테이너이름] --restart always -p [로컬포트:컨테이너포트] -v [로컬폴더:컨테이너폴더] -e [환경변수] [이미지이름:버전]

도커 관련 툴

  1. 도커 컴포즈: 여러 개의 도커 컨테이너를 정의하고 관리하는 툴
    • docker-compose up -d: 도커 컴포즈 실행
    • docker-compose down: 도커 컴포즈로 실행된 모든 컨테이너 중지 및 삭제
    • docker restart [컨테이너이름]: 컨테이너 재시작
    • docker stop [컨테이너이름]: 컨테이너 중지
    • docker rm [컨테이너이름]: 컨테이너 삭제
    • docker images: 도커 이미지 목록 확인
    • docker image rm [이미지ID]: 도커 이미지 삭제
  2. 도커 스웜: 도커 컨테이너를 클러스터로 관리하는 툴
    • 도커 스웜은 작은 규모의 프로젝트에 적합함
  3. 쿠버네티스: 도커 컨테이너를 클러스터로 관리하는 고급 툴
    • 대규모 웹서비스에 적합함

웹 서버 운용 예시

  • 프론트엔드: HTML (구조), CSS (디자인), JavaScript (이벤트)
  • 백엔드: API 서버 (Node.js, Flask, FastAPI 등), 데이터베이스
  • 미들웨어: Nginx 서버를 사용해 로드밸런싱 및 리버스 프록시 적용
  • 도메인 관리: HTTPS 사용 시 인증서 필요

DB 구축하기

  • DB: 데이터를 체계적으로 저장하는 시스템
  • DBMS: 데이터의 관리 및 복구를 도와주는 소프트웨어
  • 스키마: DB의 구조를 정의한 파일
  • SQL: RDBMS에서 데이터를 정의, 조작, 제어하기 위한 언어

도커 명령어 예시

  • 이미지 생성:
    • docker build -t my_gpt_api:0.0.1 -f ./gpt_api.Dockerfile . --no-cache
  • 컨테이너 실행:
    • docker run --rm -p 3003:3002 --name my-gpt -v ./scripts:/app my_gpt_api:0.0.1 uvicorn app:app --host 0.0.0.0 --port 3002
  • 도커 컴포즈 실행:
    • docker-compose up -d
  • 컨테이너 삭제:
    • docker rm -f [컨테이너ID]
  • 이미지 삭제:
    • docker image rm [이미지ID]
  • 현재 실행 중인 컨테이너 목록:
    • docker ps -a
  • Docker 데몬 정보 확인:
    • docker info

'AI' 카테고리의 다른 글

Git 이란?  (0) 2024.09.04
RAG란 무엇인가?  (2) 2024.09.03
Disk quota exceeded  (0) 2024.08.23
'Cuda out of Memory' Error 해결하기  (0) 2024.08.22
[자연어 용어 정리]sentence generation, prompt  (0) 2024.03.02