반응형
Docker
- 컨테이너 기반의 오픈소스 가상화 플랫폼
- 개발자가 쉽게 컨테이너를 생성하여 언제든(물리머신, 가상머신, 클라우드) 배포가 가능
- Docker를 사용하게 되면 손쉽게 개발 환경 가능하며, 여러명과 같이 프로젝트시 동일한 개발환경 구성 가능
VM vs Docker 차이점
- VM :OS내에 Hypervisor(Vmware,Hyper-v) 설치하여 필요한 OS 추가 설치하여 운영(많은 리소스 사용)
- Docker OS내에 Docker Engine을 설치하여 컨테이너 운영
Docker 라이프 사이클
(자세한 명령어는 : https://monta010.tistory.com/49 참조)
Docker PULL
- Docker Registry(Docker Hub) images 다운로드
Docker PUSH
- Docker 이미지를 Registry(Docker Hun) 업로드
Docker CREATE
- Docker 컨테이너 생성
- Docker 실행은 docker start "컨테이너명"
Docker START
- Docker 컨테이너 실행
Dcoker STOP
- Dokcer 컨테이너 중지
Docker RUN
- Docker PULL , CREATE , START 3가지를 한번에 실행
Docker 이미지 레이어
- Docker는 이미지를 가지고 Docker run을 하게 되면 Docker가 관리하고 있는 파일시스템 영역에 이미지를 저장한다.
- Docker 이미지 레이어는 Dockerfile에 의해 실행되는 명령을 이미지 레이어에 각각 저장되며, 컨테이너가 실행되면 이미지 레이어 맨 상단에 "컨테이너 레이어"가 생성된다.
- 이미지 레이어는 항시 읽기전용, 컨테이너 레이어는 읽기,쓰기 가능하다.
- 모든 변화에 대해서는 컨테이너 레이어에서 이루어지면 컨테이너가 종료되면 컨테이너 레이어가 같이 삭제 된다,
- 컨테이너 구조(이미지 레이어 + 컨테이너 레이어)
DockerFile
FROM ubuntu
RUN apt -y update && apt -y upgrade
COPY ./test.txt /tmp
DockerFile 실행
#docker build --tag ubuntu:last .
Sending build context to Docker daemon 4.096kB
Step 1/3 : FROM ubuntu
---> 1318b700e415
Step 2/3 : RUN apt -y update && apt -y upgrade
---> Running in 35109980fec0
Step 3/3 : COPY ./test.txt /tmp
---> 450299795d00
Successfully built 450299795d00
Successfully tagged ubuntu:last
- Dockerfile을 통해 명령어를 진행하게 되면 아래 같이 이미지 레이어, 컨테이너 레이어가 생성된다.
- 그림과 같이 이미지 레이어 3개, 컨테이너 레이어 1개로 되어있지만, 모든 레이어가 준비가 되면 유니온 파일 시스템을 사용하여 여러개의 레이어를 하니의 파일 시스템으로사용 할 수 있게 해준다.
- Docker에서 관리하는 모든 정보에 대해서는 /var/lib/docker 폴더에 저장
- 저장 경로를 = Docker area , Backing FileSystem
Docker Resistry
- Docker 이미지는 Docker Hub에 PULL명령어를 통해서 이미지를 다운로드하여 사용한다. Docker 이미지 배포시에 생성된 이미지를 Docker Hub PUSH하여 저장하기도 한다.(단 개인일경우 PUSH에 제약이 존재하며, 회사 일 경우네는 비용을 지불)
- Docker 이미지를 주기적으로 배포하여 사용하는 고객이라면, 비용을 지불해야하는데, Docker Private Resistry를 구성하게 되면 무료, PUSH 횟수 제한 없이 무제한 배포를 하여 사용할 수 있다.
- Private Resistry 생성하여 PULL , PUSH 과정 참조
반응형
'Docker' 카테고리의 다른 글
[Docker]Docker로 nginx 사용시 한글 깨짐 (0) | 2022.04.15 |
---|---|
[Docker]Docker Volume Mount (0) | 2022.04.15 |
[Docker]Docker Container Backup & Restore (0) | 2022.04.01 |
[Docker]Dockerfile (0) | 2021.11.27 |
Docker 설치 및 명령어 (0) | 2021.08.13 |