-
[산대특] Docker Layer, Volume, Network[산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정/Cloud 2024. 10. 31. 17:26
1031
docker 이미지를 다운 받을 때
Layer 라고 하는데, 이미지를 여러 부분으로 분산 저장한 것을 다운받아와서 이렇게 보인다.
(Layer + Cache 개념이 들어있다.)
컨테이너에서는 홈피 소스를 저장할 수 없어서(cpu에서 돌아가서 용량이 작아서)
외부 호스트인 Ubuntu에 홈피 소스를 저장하여 연결하면 용량 제약 없이 화려한 홈피를 볼 수 있다.
물론 다른 컨테이너에서도 이 홈피를 볼 수 있다.
MySQL DB 컨테이너를 만들 땐
환경변수 인자를 통해 계정이나 DB를 생성할 때 만들 수 있다.
Container 에 Network 를 할당하여 사용할 수 있다.
Class A나 Class B 주소 10.0.0.0이나 172.17.0.0 주소를 사용하여 외부로 노출되는 가상 IP를 가질 수 있음
=> 컨테이너 IP주소로 직접 접속하려면 Kubernetes의 Service 를 이용해야함
Docker Volume
컨테이너와 컨테이너 혹은 컨테이너와 노드 를 연결해 데이터를 공유하게 해준다.
컨테이너(MariaDB, MySQL..)에서 작업한 데이터는 프로세스 종료되면 사라진다.
=>외부 호스트(노드)의 HDD 공간을 공유하여 저장시킨다.
방법1) 외부인 Ubuntu 노드의 볼륨을 이용 => Round Robin 기법으로 볼 수도 있다.
방법2) 또 하나의 볼륨이 연결된 컨테이너를 실행하여 이용
방법3) 도커가 관리하는 도커 볼륨 이용
Docker Network
컨테이너 내부 쉘에서 ifconfig 하면 eth0와 lo가 보인다. Docker 는 컨테이너에게 순차적으로 IP주소를 할당. 각 컨테이너에게 가상 이더넷(veth) 인터페이스 생성근데 이것은 도커가 설치된 외부 Ubuntu 노드에서만 연결되는 IP주소여서 외부와 연결 X
ip addr 하면
Ubuntu 노드의 IP와 docker 0, 그리고 실행된 컨테이너들의 veth가 보인다.veth 인터페이스는 외부 호스트의 네트워크 인터페이스(Ubuntu 노드의 IP == ens33)과 연결되어 있다.
veth 가 컨테이너와 호스트 간의 통신 경로를 제공. => 이 구조 덕분에 외부 네트워크와 연결
veth => 도커 컨테이너와 호스트 간의 브리징 역할
'[산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정 > Cloud' 카테고리의 다른 글
[산대특] Docker backup/restore, export/import, 이벤트, Dockerfile, Multi-Stage, Express, Node.js, React, Flask, (3) 2024.11.05 [산대특] Docker Daemon, Engine, Server, Client, Dangling Image (0) 2024.11.01 [산대특] Docker와 Kubernetes (2) 2024.10.30 [산대특] Hadoop, ganglia, grids (4) 2024.10.29 [산대특] Cloud 1 이론, GitHub, ownCloud, Haddop (3) 2024.10.28