SlideShare a Scribd company logo
Multi-Host networking with Docker
OpenContainer Korea 2015
5 September 2015
anarcher
Multi-Host networking with docker
Demo
아직은 실험적인 빌드(Experimental build) 에서만 사용가능
docker engine 1.7 / dockercon 2015 에서 발표됨.
docker engine 1.9에서는?
Docker network UI
Usage:dockernetwork[OPTIONS]COMMAND[OPTIONS][arg...]
Commands:
create Createanetwork
rm Removeanetwork
ls Listallnetworks
info Displayinformationofanetwork
Run'dockernetworkCOMMAND--help'formoreinformationonacommand.
--help=false Printusage
네트웍을 만들거나,삭제하거나,조회할수 있다
dockernetworkcreate-d<plugin_name>foo
$dockernetworkcreatefoo
aae601f43744bc1f57c515a16c8c7c4989a2cad577978a32e6910b799a6bccf6
$dockernetworkcreate-doverlaybar
d9989793e2f5fe400a58ef77f706d03f668219688ee989ea68ea78b990fa2406
Docker service UI
Usage:dockerservice[OPTIONS]COMMAND[OPTIONS][arg...]
Commands:
publish Publishaservice
unpublishRemoveaservice
attach Attachabackend(container)totheservice
detach Detachthebackendfromtheservice
ls Listsallservices
info Displayinformationaboutaservice
Run'dockerserviceCOMMAND--help'formoreinformationonacommand.
`docker run` 할때 --publish-service옵션을 사용하거나,
dockerrun-itd--publish-servicedb.foopostgres
`docker service publish` 와 `docker service attach` 으로 container와 service(endpoint)
을 연결 할수 있다
$dockerservicepublishmy-service.foo
ec56fd74717d00f968c26675c9a77707e49ae64b8e54832ebf78888eb116e428
$dockerserviceattacha0ebc12d3e48my-service.foo
Docker daemon & libkv
docker-machine create
docker-machine--debugcreate
-dvirtualbox
--virtualbox-boot2docker-url=https://github.com/anarcher/boot2docker-experimental/releases/downloa
--engine-opt="kv-store=consul:$(docker-machineipinfra):8500"
--engine-label="com.docker.network.driver.overlay.bind_interface=eth1"
--engine-label="com.docker.network.driver.overlay.neighbor_ip=$(docker-machineipdemo0)"demo1
docker daemon
dockerdaemon
--kv-store=consul:consul-host:8500
--label=com.docker.network.driver.overlay.bind_interface=eth1
--label=com.docker.network.driver.overlay.neighbor_ip=10.254.101.21
cluster membership 을 위해서 serf(serfdom.io(http://serfdom.io))을 사용
docker network,docker service의 metadata을 저장하기 위해서 docker/libkv(--kv-
store)를 사용
Overlay network driver
VXLAN(Virtual eXtensible Local Area Network) 사용
-Linux(3.7)지원
-L3Networks상에서 (논리적인)L2Network을 구성
-IP/UDP를 이용해서 encapsulation하는 구조
다른 네트웍 노드(docker engine)을 찾기 위해 serf(serfdom.io(http://serfdom.io))을 사용
Linux netns(network namespace) 사용
-namespace마다 독자적인 network환경을 가질수 있다
-/var/run/docker/netns/
docker/libnetwork
Docker engine에서 network 부분을 분리 (docker engine도 libnetwork의 사용자 중..)
CNM(Container Network Model)에 대한 구현
Docker engine에서 사용하는 host,bridge에 대한 구현도 이제는 docker/libnetwork에서
Driver based networking (builtin driver도 있고,remote driver도 사용할수 있다)
Multi host networking with docker
CNM : Container Network Model
Sandbox : 컨테이너를 위한 격리된 네트웍 환경
-IP,MAC,Route,DNS;Linuxnetns,FreeBSDJail
Endpoint : 특정 네트워크에서 통신하는 네트웍 인터페이스.
-컨테이너의 생성과 소멸과는 독립적으로 분리되어 Endpoint만의 생성과 소멸을 가진다
Network : 서로 통신할수 있는 여러 Endpoints의 그룹
-하나의 endpoint는 하나의 network에만 속할수 있다.
Multi host networking with docker
Remote network driver plugin
JSON/RPC/HTTP
Plugin discovery
-/etc/docker/plugin/[name].spec|.sock|.json
API
-/Plugin.Activate
-/NetworkDriver.CreateNetwork
-/NetworkDriver.DeleteNetwork
-/NetworkDriver.CreateEndpoint
-/NetworkDriver.EndpointOperInfo
-/NetworkDriver.DeleteEndpoint
-/NetworkDriver.Join
-/NetworkDriver.Leave
Thank you
anarcher
anarcher@gmail.com(mailto:anarcher@gmail.com)
Multi host networking with docker

More Related Content

PPTX
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
PPTX
랩탑으로 tensorflow 도전하기 - tensorflow 설치
PPTX
[세미나] Vagrant 이지원
PDF
XE 모듈 개발 - 걸음마부터 날기까지 - 걸음마
PDF
Virtual Development Environment Setting
PDF
[Nomad connection]docker seminar 15.10.08
ODP
Docker설치
PDF
Dockerfile과 Bash
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
랩탑으로 tensorflow 도전하기 - tensorflow 설치
[세미나] Vagrant 이지원
XE 모듈 개발 - 걸음마부터 날기까지 - 걸음마
Virtual Development Environment Setting
[Nomad connection]docker seminar 15.10.08
Docker설치
Dockerfile과 Bash

Viewers also liked (20)

PPTX
Docker networking Tutorial 101
PPTX
Docker networking basics & coupling with Software Defined Networks
PPTX
Lessons learned in reaching multi-host container networking
PDF
Docker Networking – Running multi-host applications
PPT
Docker Multi Host Networking, Rachit Arora, IBM
PPTX
Joomla Day Poland 15 - Docker
PDF
Atlassian User Group Lower Silesia BUILDFAILUJE? PRZECIEŻ U MNIE DZIAŁAŁO
PPTX
Docker Networking - Boulder Linux Users Group (BLUG)
PPTX
Networking in Docker Containers
PPTX
Single Host Docker Networking
PDF
#eventcepcja Networking Izabela Górska (Business Link Warszawa)
PDF
docker-machine, docker-compose, docker-swarm 覚書
PPTX
Docker Networking
PDF
Octo talk : docker multi-host networking
PDF
Docker-OVS
PPTX
Docker 1.5
PDF
Aura Framework Overview
PPTX
Introduction to docker swarm
PDF
PPTX
Docker Networking & Swarm Mode Introduction
Docker networking Tutorial 101
Docker networking basics & coupling with Software Defined Networks
Lessons learned in reaching multi-host container networking
Docker Networking – Running multi-host applications
Docker Multi Host Networking, Rachit Arora, IBM
Joomla Day Poland 15 - Docker
Atlassian User Group Lower Silesia BUILDFAILUJE? PRZECIEŻ U MNIE DZIAŁAŁO
Docker Networking - Boulder Linux Users Group (BLUG)
Networking in Docker Containers
Single Host Docker Networking
#eventcepcja Networking Izabela Górska (Business Link Warszawa)
docker-machine, docker-compose, docker-swarm 覚書
Docker Networking
Octo talk : docker multi-host networking
Docker-OVS
Docker 1.5
Aura Framework Overview
Introduction to docker swarm
Docker Networking & Swarm Mode Introduction
Ad

Similar to Multi host networking with docker (20)

PDF
20141229 dklee docker
PDF
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
PPTX
Docker 사용가이드 public v0.1
PDF
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
PDF
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
PDF
왕초보를 위한 도커 사용법
PDF
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
PDF
RancherOS Introduction
PDF
K8s in action02
PPTX
Jupyter notebok tensorboard 실행하기_20160706
PDF
Introduction to Docker - LOGISPOT
PDF
Introduction to Docker - LOGISPOT
PPTX
Docker osc 0508
PDF
Tensorflow service & Machine Learning
PDF
CoreOS를 이용한 Docker 관리툴 소개
PDF
Truly understanding container
PDF
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
PDF
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
PPT
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
PDF
Docker란 무엇인가? : Docker 기본 사용법
20141229 dklee docker
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
Docker 사용가이드 public v0.1
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
왕초보를 위한 도커 사용법
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
RancherOS Introduction
K8s in action02
Jupyter notebok tensorboard 실행하기_20160706
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOT
Docker osc 0508
Tensorflow service & Machine Learning
CoreOS를 이용한 Docker 관리툴 소개
Truly understanding container
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
Docker란 무엇인가? : Docker 기본 사용법
Ad

Multi host networking with docker

  • 1. Multi-Host networking with Docker OpenContainer Korea 2015 5 September 2015 anarcher
  • 3. Demo 아직은 실험적인 빌드(Experimental build) 에서만 사용가능 docker engine 1.7 / dockercon 2015 에서 발표됨. docker engine 1.9에서는?
  • 4. Docker network UI Usage:dockernetwork[OPTIONS]COMMAND[OPTIONS][arg...] Commands: create Createanetwork rm Removeanetwork ls Listallnetworks info Displayinformationofanetwork Run'dockernetworkCOMMAND--help'formoreinformationonacommand. --help=false Printusage 네트웍을 만들거나,삭제하거나,조회할수 있다 dockernetworkcreate-d<plugin_name>foo $dockernetworkcreatefoo aae601f43744bc1f57c515a16c8c7c4989a2cad577978a32e6910b799a6bccf6 $dockernetworkcreate-doverlaybar d9989793e2f5fe400a58ef77f706d03f668219688ee989ea68ea78b990fa2406
  • 5. Docker service UI Usage:dockerservice[OPTIONS]COMMAND[OPTIONS][arg...] Commands: publish Publishaservice unpublishRemoveaservice attach Attachabackend(container)totheservice detach Detachthebackendfromtheservice ls Listsallservices info Displayinformationaboutaservice Run'dockerserviceCOMMAND--help'formoreinformationonacommand. `docker run` 할때 --publish-service옵션을 사용하거나, dockerrun-itd--publish-servicedb.foopostgres `docker service publish` 와 `docker service attach` 으로 container와 service(endpoint) 을 연결 할수 있다 $dockerservicepublishmy-service.foo ec56fd74717d00f968c26675c9a77707e49ae64b8e54832ebf78888eb116e428 $dockerserviceattacha0ebc12d3e48my-service.foo
  • 6. Docker daemon & libkv docker-machine create docker-machine--debugcreate -dvirtualbox --virtualbox-boot2docker-url=https://github.com/anarcher/boot2docker-experimental/releases/downloa --engine-opt="kv-store=consul:$(docker-machineipinfra):8500" --engine-label="com.docker.network.driver.overlay.bind_interface=eth1" --engine-label="com.docker.network.driver.overlay.neighbor_ip=$(docker-machineipdemo0)"demo1 docker daemon dockerdaemon --kv-store=consul:consul-host:8500 --label=com.docker.network.driver.overlay.bind_interface=eth1 --label=com.docker.network.driver.overlay.neighbor_ip=10.254.101.21 cluster membership 을 위해서 serf(serfdom.io(http://serfdom.io))을 사용 docker network,docker service의 metadata을 저장하기 위해서 docker/libkv(--kv- store)를 사용
  • 7. Overlay network driver VXLAN(Virtual eXtensible Local Area Network) 사용 -Linux(3.7)지원 -L3Networks상에서 (논리적인)L2Network을 구성 -IP/UDP를 이용해서 encapsulation하는 구조 다른 네트웍 노드(docker engine)을 찾기 위해 serf(serfdom.io(http://serfdom.io))을 사용 Linux netns(network namespace) 사용 -namespace마다 독자적인 network환경을 가질수 있다 -/var/run/docker/netns/
  • 8. docker/libnetwork Docker engine에서 network 부분을 분리 (docker engine도 libnetwork의 사용자 중..) CNM(Container Network Model)에 대한 구현 Docker engine에서 사용하는 host,bridge에 대한 구현도 이제는 docker/libnetwork에서 Driver based networking (builtin driver도 있고,remote driver도 사용할수 있다)
  • 10. CNM : Container Network Model Sandbox : 컨테이너를 위한 격리된 네트웍 환경 -IP,MAC,Route,DNS;Linuxnetns,FreeBSDJail Endpoint : 특정 네트워크에서 통신하는 네트웍 인터페이스. -컨테이너의 생성과 소멸과는 독립적으로 분리되어 Endpoint만의 생성과 소멸을 가진다 Network : 서로 통신할수 있는 여러 Endpoints의 그룹 -하나의 endpoint는 하나의 network에만 속할수 있다.
  • 12. Remote network driver plugin JSON/RPC/HTTP Plugin discovery -/etc/docker/plugin/[name].spec|.sock|.json API -/Plugin.Activate -/NetworkDriver.CreateNetwork -/NetworkDriver.DeleteNetwork -/NetworkDriver.CreateEndpoint -/NetworkDriver.EndpointOperInfo -/NetworkDriver.DeleteEndpoint -/NetworkDriver.Join -/NetworkDriver.Leave