Docker

이유진·2021년 12월 21일
0

1. 가상머신(VWare) & 컨테이너(Linux Container) 차이

1) 가상화 :

2) 가상화 사용 이유 :

3) 가상머신 : 가장 처음 가상화기술

  • 가상머신 방법 : Host OS(ex. window) 위에 Hypervisor(운영체제) 위에 Quest OS 설치하는 것
    == Host os(부모 운영체제) 위에 새로운 운영체제를 설치하는 것

    4) docker와 기존 가상화 차이 :
  • docker : 가상머신 방법(X), container 방식의 가상머신
  • container 방법 : Host os위에 프로세스(proccess)를 띄우는것, 호스트 os위에 Guest os 설치가 아닌, 프로세스만 설치함

2. Hypervisor 가상화 & Container 가상화 차이

3. Docker(컨테이너 가상화 기술) 장점

  • 배포과정에서 발생하는 버그 & 이슈 발생 감소

4. Docker 구조


1) Docker Client
: client가 server에 명령 전달 역할

2) Docker server(= Docker Demon)
: os위에 container를 띄울 수 있는 역할 = server 실행 역할

  • 비유 : 카세트 테이프

3) Docker Container
: Docker 이미지를 실행시키는 가상화 공간(여러개 프로세스 실행 가능)

  • 비유 : 카세트 플에이어 재생 결과물

4) Docker Image
: Container를 뛰우기 위해 필요한 file, 소스코드

  • 비유 : 카세트 테이프

5) Docker Registry = Docker Hub

5. Docker 명령어

  • docker ps : 실행중인 컨테이너 보여주기
  • docker ps -a : 실행 종료 된 것 포함한 모든 컨테이너 보기
  • docker images : 생성된 or 다운로든 된 이미지 보여주기
  • docker images -a : 모든 이미지 보여주기
  • docker build -t '도커허브에 가압한 계정명'/'이미지명(플젝명 권장)': 도커 이미지 빌드
  • docker run --name : 도커 컨테이너 실행
  • docker run it '이미지명'/bin/bash : 도커 컨테이너 실행 + 컨테이너 접속하여 쉘 실행

  • image 만들고자하는 위치에서 Dockerfile 만들기 (도커 기반 언어로 작성)
 # 1번째
 FROM python:3.8 # 파이썬 기반 이미지 
 
 # 작업 dir 설정(작업공간)
 ㅈWORKDIR/~~~~
 
 # Install packages 
 # 현재 패키지 설치 정보를 도커 이미지에 복사하기 
 COPY requirements.txt ./ 
 
 # 설치 정보 읽어서 패키지 설치
 RUN pip install -r requirements.txt
 
 
# Copy all src(소스) files
# 현재 경로에 존재하는 모든 소스파일 이미지에 복사
COPY ..

# 8000 포트(장고)를 외부에 개방(연결하고픈 어플리케이션 포트번호 개방하기)
EXPOSE 8000

# 이미지가 실행되서 container가 실행되는 명령어
# gunicorn 사용해서 서버 실행
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "docker_train.wsgi:application"]

+)추가


숫자 뒤에 "띄어쓰기 ." 필수

profile
차근차근 배워나가는 주니어 개발자

0개의 댓글