물리적 이미지를 저장하고, 컨테이너가 구동되었을 때 이미지 레이어 외의 컨테이너 레이어 정보를 저장하는 영역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 레지스트리와 주고받는 데이터에 디지털 서명을 사용할 수 있는 기능을 제공클러스터링, 스케줄링 툴여러 개의 서버와 컨테이너 관리를 쉽게 할 수 있다.📌 여담
📚 참고