SlideShare a Scribd company logo
2020-05-20Kit Works Inc.1
Docker
KitWorks Team Study
김천규
Agenda
1. What is Docker?
- Docker vs. Virtual Machine
- History, Status, Run Platforms
- Hello World
2. Images and Containers
3. Volume Mounting, Port Publishing, Linking
4. Around Docker, Docker Use Cases
5. Hands-On Workshop 2
2020-05-222
Bottom up
2020-05-22
What is a Container?
리눅스 컨테이너(LXC)
네임스페이스(Namespace)
Cgroup
Union fs
도커 구조
이점과 한계점
Docker Ecosystem
3
2020-05-20Kit Works Inc.4
Docker Ecosystem
2020-05-20Kit Works Inc.5
2020-05-20Kit Works Inc.6
2020-05-20Kit Works Inc.7
Secure
Standard
Lightweight
Standard
Docker는 컨테이너에 대한 산업 표준을 만들었으므로 어디서나 휴대 할
수 있습니다.
Lightweight
컨테이너는 시스템의 OS 시스템 커널을 공유하므로 애플리케이션 당
OS가 필요하지 않으므로 서버 효율성을 높이고 서버 및 라이센스
비용을 줄입니다.
Secure
컨테이너에서 애플리케이션이 더 안전하고 Docker는 업계에서 가장
강력한 기본 격리 기능을 제공합니다
What is a Container?
2020-05-228
결론부터, 컨테이너란
os level 수준 가상화,
‘격리 및 리소스 관리 기술이 적용된 프로세스‘
도커 컨테이너 구성요소
리눅스 컨테이너(LXC)
격리 == namespace
리소스(자원) == cgroup
Union fs
2020-05-229
Linux Container (LXC)
2020-05-22
LXC (LinuX Containers)는 단일 컨트롤 호스트 상에서 여러개의
고립된 리눅스 시스템 (컨테이너)들을 실행하기 위한 운영 시스
템 레벨 가상화 방법이다.
리눅스 커널은 cgroups를 절충하여 가상화 머신을 시작할 필요 없이 자원
할당 (CPU, 메모리, 블록 I/O, 네트워크 등)을 한다. Cgroups는 또한 애플리
케이션 입장에서 프로세스 트리, 네트워크, 사용자 ID, 마운트된 파일 시스템
등의 운영 환경을 완전히 고립시키기 위해 namespace isolation을 제공한
다.
LXC는 cgroups와 namespace를 결합하여 애플리케이션을 위한 고립된
환경을 제공한다. Docker 또한 실행 드라이버의 하나로 LXC를 사용할 수 있
으며 이를 통해 이미지 관리와 개발 서비스를 제공한다.
– Wikipedia
10
리눅스 컨테이너 == 프로세스
2020-05-2211
2020-05-22
가상화 level 차이 - 컨테이너 vs VM
12
결론부터, 컨테이너란
os level 수준 가상화,
‘격리 및 리소스 관리 기술이 적용된 프로세스‘
도커 컨테이너 구성요소
리눅스 컨테이너(LXC)
격리 == namespace
리소스(자원) == cgroup
Union fs
2020-05-2213
Namespace
• UTS(uts)
• IPC(ipc)
• User
• Process(Pid)
• Mount(mnt)
• Network(Net)
2020-05-2214
Namespace - UTS
• 컨테이너에게 자체적으로 호스트네임과 도메인 이름을 주는것
2020-05-22
호스트 컨테이너
15
Namespace - IPC
V IPC와 POSIX 메시지 큐
시스템을 호스트로 부터
분리
* IPC : 프로세스 간 통신(Inter-Process
Communication, IPC)이란 프로세스들
사이에 서로 데이터를 주고받는 행위
2020-05-2216
Namespace - User
• 호스트의 사용자와 그룹ID를 서로 분리
2020-05-22
호스트 컨테이너
17
Namespace - PID
Namespace 내부에서
실행되는 process들은
기존 PID 할당순서와
별개로 PID를 부여
PID 1 = init process
2020-05-2218
Namespace - PID
2020-05-22
호스트 컨테이너
19
Namespace - Mount
Namespace 별로,
마운트 포인트
별개로 부여
2020-05-2220
Namespace - Mount
2020-05-22
컨테이너
21
Namespace: Network
veth(virtual Ethernet devices)를 페어로 생성
가상의 케이블로 연결하는 효과
iptables, NAT
2020-05-2222
Namespace: Network
2020-05-22
호스트 컨테이너
23
Namespace: Network
2020-05-2224
그래서, 컨테이너란
os level 수준 가상화,
‘격리 및 리소스 관리 기술이 적용된 프로세스‘
도커 컨테이너 구성요소
리눅스 컨테이너(LXC)
격리 == namespace
리소스(자원) == cgroup
Union fs
2020-05-2225
Cgroup
• 자원을 나누어 쓰는 기술
2020-05-2226
Cgroup
2020-05-22
호스트 컨테이너
27
그래서, 컨테이너란
os level 수준 가상화,
‘격리 및 리소스 관리 기술이 적용된 프로세스‘
도커 컨테이너 구성요소
리눅스 컨테이너(LXC)
격리 == namespace
리소스(자원) == cgroup
Union fs
2020-05-2228
Union fs
2020-05-2229
Image – layer 구조
2020-05-22
Layer 3
Layer 2
Layer 1
Base image
Layer 3
Layer 2
Layer 1
Base image
30
컨테이너 id 매칭 확인
2020-05-2231
링크 확인
2020-05-2232
레이어 간 다른 파일 구조
2020-05-2233
파일 테스트
2020-05-22
호스트 컨테이너
34
결론, 컨테이너란
os level 수준 가상화,
‘격리 및 리소스 관리 기술이 적용된 프로세스‘
도커 컨테이너 구성요소
리눅스 컨테이너(LXC)
격리 == namespace
리소스(자원) == cgroup
Union fs
2020-05-2235
결론, 컨테이너란
os level 수준 가상화,
‘격리 및 리소스 관리 기술이 적용된 프로세스‘
도커 컨테이너 구성요소
리눅스 컨테이너(LXC)
격리 == namespace
리소스(자원) == cgroup
Union fs
2020-05-22
Stateless, Stateful – volume
Deploy – h/w에 의존적
36
도커 구조 이점
Why?
도커의 기본 철학, composable
대부분 컴포넌트 전부 다른 프로젝트로 관리
호환성, 확장성이 좋다
2020-05-2237
도커 구조 한계 - Stateless, Stateful
Stateless로 고안하는 방향
그럼에도 Stateful, 영속성(Persistence) 이 필요할 경우,
Volume 활용 (db나 개발 등)
2020-05-2238
도커 구조 한계 – Deploy, h/w에 의존적
• 도커가 설치된 모든 곳에 동일한 이미지 배포가 가능하다 (X)
• CPU arch에 의존적이다
• 기계어가 다름
2020-05-2239
결론, 컨테이너란
os level 수준 가상화,
‘격리 및 리소스 관리 기술이 적용된 프로세스‘
도커 컨테이너 구성요소
리눅스 컨테이너(LXC)
격리 == namespace
리소스(자원) == cgroup
Union fs
2020-05-22
Stateless, Stateful – volume
Deploy – h/w에 의존적
40
2020-05-22
Real World
비용 문제
41
Reference
• https://www.infoworld.com/article/3077875/containers-101-docker-fundamentals.html’
• https://www.docker.com/resources/what-container
• https://github.com/w-vi/diyC
• http://cloudrain21.com/examination-of-docker-process-binary
• https://www.networkcomputing.com/data-centers/docker-networking-fundamentals
• https://gabrieletolomei.wordpress.com/miscellanea/operating-systems/in-memory-layout/
• https://ko.wikipedia.org/wiki/LXC
• https://8gwifi.org/docs/linux-namespace.jsp
• https://devhints.io/docker
• https://medium.com/@paccattam/drooling-over-docker-1-the-genesis-d4e01ab8c6cf
2020-05-2242
Q & A
2020-05-2243
Appendix
2020-05-2244
Container 구성요소
2020-05-2245
Docker Container 생성 플로우
2020-05-2246
• Docker daemon
• Docker daemon 은 docker engine 내에서 주로 client 및 registry,
driver 의 중심에서 작업의 분배를 담당하는 중심점이라고 보면 되겠
다.
docker daemon 이라는 용어때문에 다소 혼선이 있을 수 있는데, 여
기에서 docker daemon은 그냥 docker engine 중에서 특정 모듈이
라고 이해하자.
client 로부터의 HTTP 요청을 내부 job 단위(가장 기본적인 작업 실
행 단위)로 처리할 수 있도록 분배한다.
즉, HTTP server 의 역할과 함께 client 요청을 분배(route and
distribute), scheduling 하고, 요청에 대한 적합한 Handler 를 찾는다.
요청에 대해 실질적인 처리는 Handler 를 통해 다른 모듈 들에게 전
달하여 수행하고 그 결과를 응답으로 작성하여 client 에게 제공한다.
2020-05-2247
2020-05-2248
2020-05-2249
2020-05-2250
Docker CNM(Container Network
Model)
2020-05-22
• Sandbox
• A sandbox contains the configuration of a container's network stack. This includes
management of the container's interfaces, routing table, and DNS settings. An
implementation of a sandbox could be a Linux network namespace, a FreeBSD jail, or
other similar concept. A sandbox may contain many endpoints from multiple networks.
• Endpoint
• An endpoint connects a sandbox to a network. An implementation of an endpoint
could be a veth pair, an Open vSwitch internal port, or something similar. An endpoint
can belong to only one network but may only belong to one sandbox.
• Network
• A network is a group of endpoints that are able to communicate with each other
directly. An implementation of a network could be a Linux bridge, a VLAN, and so on.
Networks consist of many endpoints, as shown in the following diagram:
51
Docker CLI cheatsheet
• https://devhints.io/docker
2020-05-2252

More Related Content

What's hot

Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center
어형 이
 
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
OpenStack Korea Community
 
Truly understanding container
Truly understanding containerTruly understanding container
Truly understanding container
어형 이
 
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
Hyperledger Korea User Group
 
Prometheus in openstack-helm
Prometheus in openstack-helmPrometheus in openstack-helm
Prometheus in openstack-helm
성일 임
 
Openstack zun,virtual kubelet
Openstack zun,virtual kubeletOpenstack zun,virtual kubelet
Openstack zun,virtual kubelet
Chanyeol yoon
 
Build the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHouseBuild the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHouse
jieun kim
 
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개
OpenStack Korea Community
 
Introduce Google Kubernetes
Introduce Google KubernetesIntroduce Google Kubernetes
Introduce Google Kubernetes
Yongbok Kim
 
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
OpenStack Korea Community
 
Docker Container
Docker ContainerDocker Container
Docker Container
Seung-Hoon Baek
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
Daegwon Kim
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
SeungYong Oh
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
Ji-Woong Choi
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8s
Hyoungjun Kim
 
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
OpenStack Korea Community
 
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Sangcheol Hwang
 
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
OpenStack Korea Community
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOT
Hosang Jeon
 
2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm
SK Telecom
 

What's hot (20)

Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center
 
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
 
Truly understanding container
Truly understanding containerTruly understanding container
Truly understanding container
 
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
 
Prometheus in openstack-helm
Prometheus in openstack-helmPrometheus in openstack-helm
Prometheus in openstack-helm
 
Openstack zun,virtual kubelet
Openstack zun,virtual kubeletOpenstack zun,virtual kubelet
Openstack zun,virtual kubelet
 
Build the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHouseBuild the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHouse
 
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개
 
Introduce Google Kubernetes
Introduce Google KubernetesIntroduce Google Kubernetes
Introduce Google Kubernetes
 
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
 
Docker Container
Docker ContainerDocker Container
Docker Container
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8s
 
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
 
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
 
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOT
 
2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm
 

Similar to [TeamStudy-022] Docker

[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
[slideshare]k8s.pptx
[slideshare]k8s.pptx[slideshare]k8s.pptx
[slideshare]k8s.pptx
ssuserb8551e
 
1. Docker Network (1)
1. Docker Network (1)1. Docker Network (1)
1. Docker Network (1)
DEVELOPER.NET
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XpressEngine
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
iFunFactory Inc.
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
Ji-Woong Choi
 
애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축
rockplace
 
kt-cloud
kt-cloudkt-cloud
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
Joongi Kim
 
[221] docker orchestration
[221] docker orchestration[221] docker orchestration
[221] docker orchestration
NAVER D2
 
Backend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker PrincipalBackend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker Principal
Kyunghun Jeon
 
[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경
[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경
[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경
NAVER Engineering
 
Windows Kubernetes Bootstrapping and Operations
Windows Kubernetes Bootstrapping and OperationsWindows Kubernetes Bootstrapping and Operations
Windows Kubernetes Bootstrapping and Operations
Jung Hyun Nam
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
NAVER LABS
 
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축
Jung Hyun Nam
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
NAVER D2
 
Krnet2018 kakao container cloud dkos
Krnet2018 kakao container cloud dkosKrnet2018 kakao container cloud dkos
Krnet2018 kakao container cloud dkos
Won-Chon Jung
 
멀티클라우드 Service Mesh
멀티클라우드 Service Mesh멀티클라우드 Service Mesh
멀티클라우드 Service Mesh
Jeong-Ho Na
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOT
LOGISPOT
 
01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKER01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKER
Opennaru, inc.
 

Similar to [TeamStudy-022] Docker (20)

[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
 
[slideshare]k8s.pptx
[slideshare]k8s.pptx[slideshare]k8s.pptx
[slideshare]k8s.pptx
 
1. Docker Network (1)
1. Docker Network (1)1. Docker Network (1)
1. Docker Network (1)
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
 
애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축
 
kt-cloud
kt-cloudkt-cloud
kt-cloud
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
 
[221] docker orchestration
[221] docker orchestration[221] docker orchestration
[221] docker orchestration
 
Backend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker PrincipalBackend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker Principal
 
[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경
[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경
[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경
 
Windows Kubernetes Bootstrapping and Operations
Windows Kubernetes Bootstrapping and OperationsWindows Kubernetes Bootstrapping and Operations
Windows Kubernetes Bootstrapping and Operations
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
 
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
Krnet2018 kakao container cloud dkos
Krnet2018 kakao container cloud dkosKrnet2018 kakao container cloud dkos
Krnet2018 kakao container cloud dkos
 
멀티클라우드 Service Mesh
멀티클라우드 Service Mesh멀티클라우드 Service Mesh
멀티클라우드 Service Mesh
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOT
 
01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKER01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKER
 

More from Wonjun Hwang

중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)
중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)
중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)
Wonjun Hwang
 
실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)
실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)
실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)
Wonjun Hwang
 
Lang Chain (Kitworks Team Study 윤정빈 발표자료)
Lang Chain (Kitworks Team Study 윤정빈 발표자료)Lang Chain (Kitworks Team Study 윤정빈 발표자료)
Lang Chain (Kitworks Team Study 윤정빈 발표자료)
Wonjun Hwang
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
Wonjun Hwang
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
Wonjun Hwang
 
Spring HTTP Client (Kitworks Team Study)
Spring HTTP Client (Kitworks Team Study)Spring HTTP Client (Kitworks Team Study)
Spring HTTP Client (Kitworks Team Study)
Wonjun Hwang
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
Wonjun Hwang
 
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
Wonjun Hwang
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Wonjun Hwang
 
스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)
Wonjun Hwang
 
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
Wonjun Hwang
 
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Wonjun Hwang
 
Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)
Wonjun Hwang
 
JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)
Wonjun Hwang
 
Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)
Wonjun Hwang
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team Study
Wonjun Hwang
 
Flutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team StudyFlutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team Study
Wonjun Hwang
 
PWA
PWAPWA

More from Wonjun Hwang (20)

중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)
중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)
중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)
 
실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)
실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)
실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)
 
Lang Chain (Kitworks Team Study 윤정빈 발표자료)
Lang Chain (Kitworks Team Study 윤정빈 발표자료)Lang Chain (Kitworks Team Study 윤정빈 발표자료)
Lang Chain (Kitworks Team Study 윤정빈 발표자료)
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
 
Spring HTTP Client (Kitworks Team Study)
Spring HTTP Client (Kitworks Team Study)Spring HTTP Client (Kitworks Team Study)
Spring HTTP Client (Kitworks Team Study)
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)
 
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
 
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
 
Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)
 
JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)
 
Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team Study
 
Flutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team StudyFlutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team Study
 
PWA
PWAPWA
PWA
 

[TeamStudy-022] Docker

  • 2. Agenda 1. What is Docker? - Docker vs. Virtual Machine - History, Status, Run Platforms - Hello World 2. Images and Containers 3. Volume Mounting, Port Publishing, Linking 4. Around Docker, Docker Use Cases 5. Hands-On Workshop 2 2020-05-222
  • 3. Bottom up 2020-05-22 What is a Container? 리눅스 컨테이너(LXC) 네임스페이스(Namespace) Cgroup Union fs 도커 구조 이점과 한계점 Docker Ecosystem 3
  • 8. Standard Docker는 컨테이너에 대한 산업 표준을 만들었으므로 어디서나 휴대 할 수 있습니다. Lightweight 컨테이너는 시스템의 OS 시스템 커널을 공유하므로 애플리케이션 당 OS가 필요하지 않으므로 서버 효율성을 높이고 서버 및 라이센스 비용을 줄입니다. Secure 컨테이너에서 애플리케이션이 더 안전하고 Docker는 업계에서 가장 강력한 기본 격리 기능을 제공합니다 What is a Container? 2020-05-228
  • 9. 결론부터, 컨테이너란 os level 수준 가상화, ‘격리 및 리소스 관리 기술이 적용된 프로세스‘ 도커 컨테이너 구성요소 리눅스 컨테이너(LXC) 격리 == namespace 리소스(자원) == cgroup Union fs 2020-05-229
  • 10. Linux Container (LXC) 2020-05-22 LXC (LinuX Containers)는 단일 컨트롤 호스트 상에서 여러개의 고립된 리눅스 시스템 (컨테이너)들을 실행하기 위한 운영 시스 템 레벨 가상화 방법이다. 리눅스 커널은 cgroups를 절충하여 가상화 머신을 시작할 필요 없이 자원 할당 (CPU, 메모리, 블록 I/O, 네트워크 등)을 한다. Cgroups는 또한 애플리 케이션 입장에서 프로세스 트리, 네트워크, 사용자 ID, 마운트된 파일 시스템 등의 운영 환경을 완전히 고립시키기 위해 namespace isolation을 제공한 다. LXC는 cgroups와 namespace를 결합하여 애플리케이션을 위한 고립된 환경을 제공한다. Docker 또한 실행 드라이버의 하나로 LXC를 사용할 수 있 으며 이를 통해 이미지 관리와 개발 서비스를 제공한다. – Wikipedia 10
  • 11. 리눅스 컨테이너 == 프로세스 2020-05-2211
  • 12. 2020-05-22 가상화 level 차이 - 컨테이너 vs VM 12
  • 13. 결론부터, 컨테이너란 os level 수준 가상화, ‘격리 및 리소스 관리 기술이 적용된 프로세스‘ 도커 컨테이너 구성요소 리눅스 컨테이너(LXC) 격리 == namespace 리소스(자원) == cgroup Union fs 2020-05-2213
  • 14. Namespace • UTS(uts) • IPC(ipc) • User • Process(Pid) • Mount(mnt) • Network(Net) 2020-05-2214
  • 15. Namespace - UTS • 컨테이너에게 자체적으로 호스트네임과 도메인 이름을 주는것 2020-05-22 호스트 컨테이너 15
  • 16. Namespace - IPC V IPC와 POSIX 메시지 큐 시스템을 호스트로 부터 분리 * IPC : 프로세스 간 통신(Inter-Process Communication, IPC)이란 프로세스들 사이에 서로 데이터를 주고받는 행위 2020-05-2216
  • 17. Namespace - User • 호스트의 사용자와 그룹ID를 서로 분리 2020-05-22 호스트 컨테이너 17
  • 18. Namespace - PID Namespace 내부에서 실행되는 process들은 기존 PID 할당순서와 별개로 PID를 부여 PID 1 = init process 2020-05-2218
  • 20. Namespace - Mount Namespace 별로, 마운트 포인트 별개로 부여 2020-05-2220
  • 22. Namespace: Network veth(virtual Ethernet devices)를 페어로 생성 가상의 케이블로 연결하는 효과 iptables, NAT 2020-05-2222
  • 25. 그래서, 컨테이너란 os level 수준 가상화, ‘격리 및 리소스 관리 기술이 적용된 프로세스‘ 도커 컨테이너 구성요소 리눅스 컨테이너(LXC) 격리 == namespace 리소스(자원) == cgroup Union fs 2020-05-2225
  • 26. Cgroup • 자원을 나누어 쓰는 기술 2020-05-2226
  • 28. 그래서, 컨테이너란 os level 수준 가상화, ‘격리 및 리소스 관리 기술이 적용된 프로세스‘ 도커 컨테이너 구성요소 리눅스 컨테이너(LXC) 격리 == namespace 리소스(자원) == cgroup Union fs 2020-05-2228
  • 30. Image – layer 구조 2020-05-22 Layer 3 Layer 2 Layer 1 Base image Layer 3 Layer 2 Layer 1 Base image 30
  • 31. 컨테이너 id 매칭 확인 2020-05-2231
  • 33. 레이어 간 다른 파일 구조 2020-05-2233
  • 35. 결론, 컨테이너란 os level 수준 가상화, ‘격리 및 리소스 관리 기술이 적용된 프로세스‘ 도커 컨테이너 구성요소 리눅스 컨테이너(LXC) 격리 == namespace 리소스(자원) == cgroup Union fs 2020-05-2235
  • 36. 결론, 컨테이너란 os level 수준 가상화, ‘격리 및 리소스 관리 기술이 적용된 프로세스‘ 도커 컨테이너 구성요소 리눅스 컨테이너(LXC) 격리 == namespace 리소스(자원) == cgroup Union fs 2020-05-22 Stateless, Stateful – volume Deploy – h/w에 의존적 36
  • 37. 도커 구조 이점 Why? 도커의 기본 철학, composable 대부분 컴포넌트 전부 다른 프로젝트로 관리 호환성, 확장성이 좋다 2020-05-2237
  • 38. 도커 구조 한계 - Stateless, Stateful Stateless로 고안하는 방향 그럼에도 Stateful, 영속성(Persistence) 이 필요할 경우, Volume 활용 (db나 개발 등) 2020-05-2238
  • 39. 도커 구조 한계 – Deploy, h/w에 의존적 • 도커가 설치된 모든 곳에 동일한 이미지 배포가 가능하다 (X) • CPU arch에 의존적이다 • 기계어가 다름 2020-05-2239
  • 40. 결론, 컨테이너란 os level 수준 가상화, ‘격리 및 리소스 관리 기술이 적용된 프로세스‘ 도커 컨테이너 구성요소 리눅스 컨테이너(LXC) 격리 == namespace 리소스(자원) == cgroup Union fs 2020-05-22 Stateless, Stateful – volume Deploy – h/w에 의존적 40
  • 42. Reference • https://www.infoworld.com/article/3077875/containers-101-docker-fundamentals.html’ • https://www.docker.com/resources/what-container • https://github.com/w-vi/diyC • http://cloudrain21.com/examination-of-docker-process-binary • https://www.networkcomputing.com/data-centers/docker-networking-fundamentals • https://gabrieletolomei.wordpress.com/miscellanea/operating-systems/in-memory-layout/ • https://ko.wikipedia.org/wiki/LXC • https://8gwifi.org/docs/linux-namespace.jsp • https://devhints.io/docker • https://medium.com/@paccattam/drooling-over-docker-1-the-genesis-d4e01ab8c6cf 2020-05-2242
  • 46. Docker Container 생성 플로우 2020-05-2246
  • 47. • Docker daemon • Docker daemon 은 docker engine 내에서 주로 client 및 registry, driver 의 중심에서 작업의 분배를 담당하는 중심점이라고 보면 되겠 다. docker daemon 이라는 용어때문에 다소 혼선이 있을 수 있는데, 여 기에서 docker daemon은 그냥 docker engine 중에서 특정 모듈이 라고 이해하자. client 로부터의 HTTP 요청을 내부 job 단위(가장 기본적인 작업 실 행 단위)로 처리할 수 있도록 분배한다. 즉, HTTP server 의 역할과 함께 client 요청을 분배(route and distribute), scheduling 하고, 요청에 대한 적합한 Handler 를 찾는다. 요청에 대해 실질적인 처리는 Handler 를 통해 다른 모듈 들에게 전 달하여 수행하고 그 결과를 응답으로 작성하여 client 에게 제공한다. 2020-05-2247
  • 51. Docker CNM(Container Network Model) 2020-05-22 • Sandbox • A sandbox contains the configuration of a container's network stack. This includes management of the container's interfaces, routing table, and DNS settings. An implementation of a sandbox could be a Linux network namespace, a FreeBSD jail, or other similar concept. A sandbox may contain many endpoints from multiple networks. • Endpoint • An endpoint connects a sandbox to a network. An implementation of an endpoint could be a veth pair, an Open vSwitch internal port, or something similar. An endpoint can belong to only one network but may only belong to one sandbox. • Network • A network is a group of endpoints that are able to communicate with each other directly. An implementation of a network could be a Linux bridge, a VLAN, and so on. Networks consist of many endpoints, as shown in the following diagram: 51
  • 52. Docker CLI cheatsheet • https://devhints.io/docker 2020-05-2252

Editor's Notes

  1. lower dir : 아래쪽에 깔려 있는, 수많은 투명 셀로판지에 해당하는 1개 이상의 디렉터리. upper dir : 가장 위쪽에 있는 투명 셀로판지에 해당하는 디렉터리. 최종적으로 사용자에게 보이는 파일들을 변경할 수 있다. merge dir: 위의 그림에서, 모든 셀로판지를 겹쳐서 보는 통합 뷰 (View) 에 해당하는 디렉터리. work dir : 통합 뷰의 원자성을 보장하기 위해 존재하는 중간 계층. Overlay를 직접 사용할 때는 크게 중요하지 않다.
  2. Docker는 호스트 CPU 아키텍처를 따른다.. 인텔(I386) arm 컨테이너는 못 돌린다 Vagrant로 VM 따로 관리 가능 Cpu, disk IO, network nic(eth) 등 설정 용이 실제 bare metal 보다 싸다(시간, 인력 등비용)