물리적 이미지
를 저장
하고, 컨테이너가 구동
되었을 때 이미지 레이어 외의 컨테이너 레이어 정보
를 저장
하는 영역cd
/var/lib/docker
[root@karim ~/docker] ls
containers network plugins swarm trust
image overlay2 tmp volumes
호스트 정보
, 마운트
및 포트포워딩
한 정보
들이 있는 곳이다.[root@karim containers]# ls
cede526eeb56a1d721fce8b44a645969e588a76c9d87dfcae8ff012036673e13
[root@karim cede526eeb56a1d721fce8b44a645969e588a76c9d87dfcae8ff012036673e13]# ls
cede526eeb56a1d721fce8b44a645969e588a76c9d87dfcae8ff012036673e13-json.log
hostconfig.json
mounts
checkpoints
hostname
resolv.conf
config.v2.json
hosts
resolv.conf.hash
포트포워딩 정보를 추가
하고 도커 올리고, 컨테이너 올리면 된다.!{"Binds":["el-upgrade:/data"],"ContainerIDFile":"","LogConfig":{"Type":"json-file","Config":{}},"NetworkMode":"default","PortBindings":{"22/tcp":[{"HostIp":"","HostPort":"1111"}]},"RestartPolicy":{"Name":"no","MaximumRetryCount":0},"AutoRemove":false,"VolumeDriver":"","VolumesFrom":null,"CapAdd":null,"CapDrop":null,"Capabilities":null,"Dns":[],"DnsOptions":[],"DnsSearch":[],"ExtraHosts":null,"GroupAdd":null,"IpcMode":"private","Cgroup":"","Links":null,"OomScoreAdj":0,"PidMode":"","Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"SecurityOpt":null,"UTSMode":"","UsernsMode":"","ShmSize":67108864,"Runtime":"runc","ConsoleSize":[0,0],"Isolation":"","CpuShares":0,"Memory":0,"NanoCpus":0,"CgroupParent":"","BlkioWeight":0,"BlkioWeightDevice":[],"BlkioDeviceReadBps":null,"BlkioDeviceWriteBps":null,"BlkioDeviceReadIOps":null,"BlkioDeviceWriteIOps":null,"CpuPeriod":0,"CpuQuota":0,"CpuRealtimePeriod":0,"CpuRealtimeRuntime":0,"CpusetCpus":"","CpusetMems":"","Devices":[],"DeviceCgroupRules":null,"DeviceRequests":null,"KernelMemory":0,"KernelMemoryTCP":0,"MemoryReservation":0,"MemorySwap":0,"MemorySwappiness":null,"OomKillDisable":false,"PidsLimit":null,"Ulimits":null,"CpuCount":0,"CpuPercent":0,"IOMaximumIOps":0,"IOMaximumBandwidth":0,"MaskedPaths":["/proc/asound","/proc/acpi","/proc/kcore","/proc/keys","/proc/latency_stats","/proc/timer_list","/proc/timer_stats","/proc/sched_debug","/proc/scsi","/sys/firmware"],"ReadonlyPaths":["/proc/bus","/proc/fs","/proc/irq","/proc/sys","/proc/sysrq-trigger"]}
호스트
이름네임 서버
지정 파일환경변수
파일hosts
파일-v
으로 설정해 주면 생성한 볼륨 이름으로 dir가 만들어 진다.docker volume create
[지정 볼륨 dir 명]
docker run -d --name [컨테이너 이름]
-v [생성된 지정 볼륨 dir 명]:/[마운트 할 컨테이너 dir]
[이미지REPOSITORY명]:[TAG명]
overlay2 인 이유
docker info
라는 명령어를 사용해서 현재 환경에서 사용하는 docker에 대한 정보를 확인이 가능한데
Storage와 일치하는 것을 볼 수 있다.
(Storage Driver : overlay2)
overlay2란?
파일 시스템
스토리지 드라이버
(외로 aufw 가 있음)Container의 Storage를 제한하기 위해서는 Docker Engine 자체의 기능을 이용하지 않고 Storage Driver의 도움이 필요한다고 한다.
Container가 Storage Driver의 파일 시스템을 기반으로 동작해서 그런다는데. 이때 사용하는 파일 시스템이 Overlay2
삭제
되면, 이 오버레이 마운트 경로의 데이터는 모두 삭제
된다.-init
가 붙은
dir은 방금 생성된 container-init
가 붙지 않은
디렉토리가 실제 Container의 파일 시스템을 담고 있는 디렉토리백업
과 같은 역할을 수행하기 위해서, 컨테이너 내부 파일 구조의 변경 사항
을 기록하는 곳
- 레이어란 기존 이미지에 추가적인 파일이 필요할 때 다시 다운로드 받는 방법이 아닌
해당 파일을 추가하기 위한 개념
- 이미지는 여러 개의
읽기전용(Read only) 레이어
로 구성되고,파일이 추가
되면새로운 레이어
가 생성
layer 해시 값
과 diff id간
의 대응정보
를 저장한다.다운로드
한 이미지 정보
를 저장실질적인 이미지의 정확한 정보
원격
Docker 레지스트리와 주고받는 데이터
에 디지털 서명
을 사용할 수 있는 기능을 제공클러스터링
, 스케줄링
툴여러 개
의 서버
와 컨테이너
관리
를 쉽게 할 수 있다.📌 여담
📚 참고