도커 레이어 아키텍처
Image Layer
-
dockerfile
기준으로 이미지가 빌드 됩니다. - 읽기 전용으로 가동이 됨.
- 총 5개의 레이어 기준으로 빌드가 됩니다.
Layer 1
: Ubuntu 관련된 내용을 저장Layer 2
: apt 변경된 내용을 저장Layer 3
: 파이썬 코드 관련된 내용 저장Layer 4
: 소스 코드를 저장Layer 5
: Entry Point를 저장
Container Layer
- 쓰기 전용 레이어를 말함.
- 컨테이너를 종료시 삭제가 됨.
호스트 볼륨
호스트의 디렉토리와 도커 컨테이너 디렉토리를 1:1 매칭 하여 연결하는 방법을 의미합니다.
docker run -d \
--name nginx \
-v /opt/html:/usr/share/nginx/html \
nginx
볼륨 컨테이너
볼륨 컨테이너 방식은 데이터 저장용 컨테이너를 하나 구동을 하여 나머지 도커 컨테이너들과 볼륨연결을 해주는 방식을 말합니다.
docker run \
-d \
-it \
-v $(pwd)/html:/usr/share/nginx/html \
--name web-volume \
ubuntu:focal
docker run \
-d \
--name fastcampus-nginx \
--volumes-from web-volume \
-p 80:80 \
nginx
docker run \
-d \
--name fastcampus-nginx2 \
--volumes-from web-volume \
-p 8080:80 \
nginx
도커 볼륨
도커가 제공하는 볼륨 관리 기능을 활용하여 데이터를 보존 할 수 있습니다.
/var/lib/docker/volumes/${volume-name}/_data
에 데이터를 저장합니다.
docker volume create --name db
docker volume ls
docker run \
-d \
--name fastcampus-mysql \
-e MYSQL_DATABASE=fastcampus \
-e MYSQL_ROOT_PASSWORD=fastcampus \
-v db:/var/lib/mysql \
-p 3306:3306 \
mysql:5.7
읽기전용 볼륨 연결
volume
마지막에 :ro
을 붙여 readOnly
속성을 부여 합니다. ro
옵션인 상태에서는 생성 및 삭제하는 등의 행동은 불가합니다.
docker run \
-d \
-v $(pwd)/html:/usr/share/nginx/html:ro \
-p 80:80 \
--name ro-nginx \
nginx
'Infra > Docker' 카테고리의 다른 글
Docker docker-compose (0) | 2023.09.26 |
---|---|
Docker image 경량화 (0) | 2023.09.26 |
Docker image 압축 및 풀기, Docker Hub 활용 (0) | 2023.09.26 |
Docker Image build (0) | 2023.09.26 |
Docker Log (0) | 2023.09.25 |