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 [환경변수] [이미지이름:버전]
도커 관련 툴
- 도커 컴포즈: 여러 개의 도커 컨테이너를 정의하고 관리하는 툴
- docker-compose up -d: 도커 컴포즈 실행
- docker-compose down: 도커 컴포즈로 실행된 모든 컨테이너 중지 및 삭제
- docker restart [컨테이너이름]: 컨테이너 재시작
- docker stop [컨테이너이름]: 컨테이너 중지
- docker rm [컨테이너이름]: 컨테이너 삭제
- docker images: 도커 이미지 목록 확인
- docker image rm [이미지ID]: 도커 이미지 삭제
- 도커 스웜: 도커 컨테이너를 클러스터로 관리하는 툴
- 도커 스웜은 작은 규모의 프로젝트에 적합함
- 쿠버네티스: 도커 컨테이너를 클러스터로 관리하는 고급 툴
- 대규모 웹서비스에 적합함
웹 서버 운용 예시
- 프론트엔드: 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 |