SlideShare a Scribd company logo
copyright 2015
Container networks
Chris Swan
@cpswan
copyright 2015
Syllabus
2
• Default Docker Network
• Multi container apps
• Networking modes
• Pipework
• Connecting containers across VMs using
Open vSwitch.
• Using containers for application network services such
as proxies, load balancers and for TLS termination
copyright 2015
Go at your own pace
3
Detailed instructions (and these slides) are available at:
https://github.com/cpswan/container-networking-tutorial
is.gd/onugcn
copyright 2015
The default Docker network
copyright 2015 5
Let’s start with a regular host
eth0
10.0.1.1
copyright 2015 6
Launch an instance
1) console.aws.amazon.com
2)
3)
4)
copyright 2015 7
Launch an instance cont.
5)
6)
7) Go ahead and launch it, then go to the instances view
to see private and public IP addresses
copyright 2015 8
Connect on SSH and inspect network
Connect:
ssh -i my_key.pem ubuntu@public_ip
Show IPs
ip addr
Look at NAT rules
sudo iptables -t nat -L -n
copyright 2015 9
Install Docker
eth0
10.0.1.1
docker0
172.17.42.1
copyright 2015 10
Install Docker and inspect network
Install Docker
wget -qO- https://get.docker.com/ | sh
Show IPs
ip addr
Look at NAT rules
sudo iptables -t nat -L -n
copyright 2015 11
Start a container
eth0
10.0.1.1
docker0
172.17.42.1
eth0
172.17.0.1
veth67ab
copyright 2015 12
Start a container and inspect network
Start container
CON1=$(sudo docker run -d cpswan/hello_onug)
Get IP
CON1IP=$(sudo docker inspect 
--format='{{.NetworkSettings.IPAddress}}' $CON1)
Show IP and use it
echo $CON1IP && curl $CON1IP:8080
copyright 2015 13
Start another container
eth0
10.0.1.1
docker0
172.17.42.1
eth0
172.17.0.1
veth67ab
eth0
172.17.0.2
veth9c5d
copyright 2015 14
Start 2nd container and use it
Start container
CON2=$(sudo docker run -d -p 8080:8080 cpswan/hello_onug)
Connect to the container
curl localhost:8080
copyright 2015 15
Take another look at the host network
Show IPs
ip addr
Look at NAT rules
sudo iptables -t nat -L -n
copyright 2015
Multi container apps
copyright 2015 17
A typical 3 tier app
HTTPS (tcp:443)
Web Server
(tcp:4567)
App Server
(tcp:3306)
DB Server
copyright 2015 18
Launch a 3 tier app with links
Create the directory for persistent data
sudo mkdir -p /data/mysql
Start the database
sudo docker run -d -p 3306:3306 --name todomvc_db 
-v /data/mysql:/var/lib/mysql cpswan/todomvc.mysql
Start the app server
sudo docker run -d -p 4567:4567 --name todomvc_app 
--link todomvc_db:db cpswan/todomvc.sinatra
Start the web server
sudo docker run -d -p 443:443 --name todomvc_ssl 
--link todomvc_app:app cpswan/todomvc.ssl
copyright 2015 19
Look at how the links work
Get a shell in the app container
sudo docker exec -it $(sudo docker ps | 
grep sinatra | cut -c1-12) bash
Take a look at the app using ENV variable
head /opt/sinatra-ToDoMVC-docker/app.rb
exit
Source is at:
https://github.com/cpswan/sinatra-ToDoMVC/blob/docker/app.rb
copyright 2015 20
Look at how the links work pt.2
Get a shell in the ssl container
sudo docker exec -it $(sudo docker ps | 
grep ssl | cut -c1-12) bash
ENV variable has been hard coded into config
tail /etc/nginx/nginx.conf
The launch script uses a template to fetch ENV vars
cat /etc/nginx/upstream.template
exit
Source is at:
https://github.com/cpswan/dockerToDoMVC/blob/master/NginxSSL/start_nginx.sh
copyright 2015 21
Another quick look at iptables
Look at NAT rules
sudo iptables -t nat -L -n
Look at DOCKER chain
sudo iptables -L
copyright 2015 22
Docker Compose
Install Docker Compose
sudo apt-get install -y python-pip
sudo pip install -U docker-compose
Download and view example file
wget http://is.gd/onugdc -O docker-compose.yml
cat docker-compose.yml
copyright 2015 23
Bring up the demo app again
Restart Docker to clear out containers
sudo service docker restart
Invoke Docker compose (in background)
sudo docker-compose up &
List Docker processes
sudo docker ps
copyright 2015
Docker networking modes
copyright 2015 25
--net=host
eth0
10.0.1.1
docker0
172.17.42.1
eth0
172.17.0.1
veth67ab
eth0
172.17.0.2
veth9c5d
copyright 2015 26
--net=host example
Start a container
sudo docker run -d --net=host cpswan/hello_onug
Use it
curl localhost:8080
copyright 2015 27
--net=container
eth0
10.0.1.1
docker0
172.17.42.1
eth0
172.17.0.1
veth67ab
eth0
172.17.0.2
veth9c5d
copyright 2015 28
--net=container example
Start containers
CON1=$(sudo docker run -d cpswan/todomvc.mysql)
sudo docker run --net=container:$CON1 –d cpswan/hello_onug
Get IP, show IP and use it
CON1IP=$(sudo docker inspect 
--format='{{.NetworkSettings.IPAddress}}' $CON1)
echo $CON1IP && curl $CON1IP:8080
copyright 2015 29
--net=none
eth0
10.0.1.1
docker0
172.17.42.1
eth0
172.17.0.1
veth67ab
eth0
172.17.0.2
veth9c5d
copyright 2015 30
--net=none example
Clear up
sudo service docker restart
Start container
CON2=$(sudo docker run --net=none -d cpswan/hello_onug)
No IP!
sudo docker inspect 
--format='{{.NetworkSettings.IPAddress}}' $CON2
copyright 2015
Pipework
copyright 2015 32
Get Pipework
Install Pipework
sudo wget http://is.gd/onugpw -O /usr/bin/pipework
sudo chmod +x /usr/bin/pipework
copyright 2015 33
Connect together some containers
Start another container
CON1=$(sudo docker run --net=none -d cpswan/todomvc.mysql)
Add first container to a bridge
sudo pipework br1 $CON1 192.168.1.1/24
Add second container to a bridge
sudo pipework br1 $CON2 192.168.1.2/24
copyright 2015 34
Test connectivity
Shell into first container
sudo docker exec -it $CON1 bash
Show address
ip addr
Connect to second container for Hello World
curl 192.168.1.2:8080
exit
copyright 2015
Connecting containers across VMs using
Open vSwitch
copyright 2015 36
Implement ODCA SDN UM #4
http://www.opendatacenteralliance.org/docs/software_defined_networking_master_usage_model_rev2.pdf
copyright 2015 37
Launch another instance
1) Return to console.aws.amazon.com
2) Right click on existing instance and Launch More Like This
3) Launch
4) View Instances and get IP addresses
copyright 2015 38
Install Docker and Pipework on 2nd instance
Connect:
ssh -i my_key.pem ubuntu@public_ip
Install Docker
wget -qO- https://get.docker.com/ | sh
Install Pipework
sudo wget http://is.gd/onugpw -O /usr/bin/pipework
sudo chmod +x /usr/bin/pipework
copyright 2015 39
Install OVS on both instances
Install OVS
sudo apt-get install -y openvswitch-switch
copyright 2015 40
Connect instances together via OVS
On first instance
sudo ovs-vsctl add-br ovsbr0
sudo ovs-vsctl add-port ovsbr0 gre1 -- set interface 
gre1 type=gre options:remote_ip=private_IP_instance2
On second instance
sudo ovs-vsctl add-br ovsbr0
sudo ovs-vsctl add-port ovsbr0 gre2 -- set interface 
gre2 type=gre options:remote_ip=private_IP_instance1
copyright 2015 41
Test connectivity between VMs
On second instance
sudo pipework ovsbr0 $(sudo docker run --net=none 
-d cpswan/hello_onug) 192.168.2.2/24
On first instance
CON1=$(sudo docker run --net=none -d cpswan/todomvc.mysql)
sudo pipework ovsbr0 $CON1 192.168.2.1/24
sudo docker exec -it $CON1 bash
curl 192.168.2.2:8080
exit
copyright 2015
Containerised network
application services
copyright 2015 43
Run Network App Svcs
Run container with HAProxy and Nginx:
NAS=$(sudo docker run -d -p 80:80 -p 443:443 
-p 4433:4433 cpswan/net-app-svcs)
Add another HelloWorld for it to load balance over
sudo pipework ovsbr0 $(sudo docker run --net=none 
-d cpswan/hello_onug) 192.168.2.3/24
Add the NAS container to the OVS bridge
sudo pipework ovsbr0 $NAS 192.168.2.4/24
copyright 2015 44
Open up AWS Security Groups
1) Return to console.aws.amazon.com
2) Click on Security Groups, launch-wizard-1, inbound, Edit
3) Add HTTP, HTTPS and Custom TCP Rule for 4433
4) Save
copyright 2015 45
Load balancer in action
Browse to http://public_ip
Browse to http://public_ip/haproxy?stats and sign
in with:
Username: us3r
Password: pa55Word
copyright 2015 46
TLS termination in action
Browse to https://public_ip
Accept browser security warnings
Bring up certificate information
copyright 2015 47
WAF in action
Browse to https://public_ip:4433
Accept browser security warnings
Browse to https://public_dns_address:4433
copyright 2015 48
Take a look at config
Get a shell on the NAS container
sudo docker exec -it $NAS bash
Inspect HAProxy config
more /etc/haproxy/haproxy.cfg
Inspect Nginx config
more /etc/nginx/nginx.conf
Source code is at http://is.gd/onugnas
copyright 2015
Review
copyright 2015
Review
50
• Default Docker Network
• Multi container apps
• Networking modes
• Pipework
• Connecting containers across VMs using
Open vSwitch.
• Using containers for application network services such
as proxies, load balancers and for TLS termination
copyright 2015
Further reading
copyright 2015
Take a look at
52
• Docker Network Configuration
https://docs.docker.com/articles/networking/
• Weave
https://github.com/weaveworks/weave
• Flocker
https://github.com/ClusterHQ/flocker
• Socketplane
https://github.com/socketplane/socketplane
• Tenus
https://github.com/milosgajdos83/tenus
• Project Calico
https://github.com/Metaswitch/calico
copyright 2015
Don’t forget to shut down AWS instances!

More Related Content

What's hot

Ryan Koop's Docker Chicago Meetup Demo March 12 2014
Ryan Koop's Docker Chicago Meetup Demo March 12 2014Ryan Koop's Docker Chicago Meetup Demo March 12 2014
Ryan Koop's Docker Chicago Meetup Demo March 12 2014
Cohesive Networks
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
CJ Cullen
 
Docker Networking - Current Status and goals of Experimental Networking
Docker Networking - Current Status and goals of Experimental NetworkingDocker Networking - Current Status and goals of Experimental Networking
Docker Networking - Current Status and goals of Experimental Networking
Sreenivas Makam
 
What should be PID 1 in a container ? by Ranjith Rajaram for #rootConf 2017
What should be PID 1 in a container ? by Ranjith Rajaram for #rootConf 2017What should be PID 1 in a container ? by Ranjith Rajaram for #rootConf 2017
What should be PID 1 in a container ? by Ranjith Rajaram for #rootConf 2017
Ranjith Rajaram
 
Docker Networking in OpenStack: What you need to know now
Docker Networking in OpenStack: What you need to know nowDocker Networking in OpenStack: What you need to know now
Docker Networking in OpenStack: What you need to know now
PLUMgrid
 
LinuxKit Deep Dive
LinuxKit Deep DiveLinuxKit Deep Dive
LinuxKit Deep Dive
Docker, Inc.
 
Kubernetes 1001
Kubernetes 1001Kubernetes 1001
Kubernetes 1001
HungWei Chiu
 
Deep dive in container service discovery
Deep dive in container service discoveryDeep dive in container service discovery
Deep dive in container service discovery
Docker, Inc.
 
Automatically Renew Certificated In Your Kubernetes Cluster
Automatically Renew Certificated In Your Kubernetes ClusterAutomatically Renew Certificated In Your Kubernetes Cluster
Automatically Renew Certificated In Your Kubernetes Cluster
HungWei Chiu
 
Octo talk : docker multi-host networking
Octo talk : docker multi-host networking Octo talk : docker multi-host networking
Octo talk : docker multi-host networking
Hervé Leclerc
 
Containerd: Building a Container Supervisor by Michael Crosby
Containerd: Building a Container Supervisor by Michael CrosbyContainerd: Building a Container Supervisor by Michael Crosby
Containerd: Building a Container Supervisor by Michael Crosby
Docker, Inc.
 
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Van Phuc
 
DockerDay2015: Docker Networking
DockerDay2015: Docker NetworkingDockerDay2015: Docker Networking
DockerDay2015: Docker Networking
Docker-Hanoi
 
Application-Based Routing
Application-Based RoutingApplication-Based Routing
Application-Based Routing
HungWei Chiu
 
Introduction to CircleCI
Introduction to CircleCIIntroduction to CircleCI
Introduction to CircleCI
HungWei Chiu
 
On-Demand Image Resizing from Part of the monolith to Containerized Microserv...
On-Demand Image Resizing from Part of the monolith to Containerized Microserv...On-Demand Image Resizing from Part of the monolith to Containerized Microserv...
On-Demand Image Resizing from Part of the monolith to Containerized Microserv...
Docker, Inc.
 
When Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architectureWhen Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architecture
Adrien Blind
 
Docker Networking – Running multi-host applications
Docker Networking – Running multi-host applicationsDocker Networking – Running multi-host applications
Docker Networking – Running multi-host applications
Christina Rasimus
 
Packet Walk(s) In Kubernetes
Packet Walk(s) In KubernetesPacket Walk(s) In Kubernetes
Packet Walk(s) In Kubernetes
Don Jayakody
 
Docker network performance in the public cloud
Docker network performance in the public cloudDocker network performance in the public cloud
Docker network performance in the public cloud
Arjan Schaaf
 

What's hot (20)

Ryan Koop's Docker Chicago Meetup Demo March 12 2014
Ryan Koop's Docker Chicago Meetup Demo March 12 2014Ryan Koop's Docker Chicago Meetup Demo March 12 2014
Ryan Koop's Docker Chicago Meetup Demo March 12 2014
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Docker Networking - Current Status and goals of Experimental Networking
Docker Networking - Current Status and goals of Experimental NetworkingDocker Networking - Current Status and goals of Experimental Networking
Docker Networking - Current Status and goals of Experimental Networking
 
What should be PID 1 in a container ? by Ranjith Rajaram for #rootConf 2017
What should be PID 1 in a container ? by Ranjith Rajaram for #rootConf 2017What should be PID 1 in a container ? by Ranjith Rajaram for #rootConf 2017
What should be PID 1 in a container ? by Ranjith Rajaram for #rootConf 2017
 
Docker Networking in OpenStack: What you need to know now
Docker Networking in OpenStack: What you need to know nowDocker Networking in OpenStack: What you need to know now
Docker Networking in OpenStack: What you need to know now
 
LinuxKit Deep Dive
LinuxKit Deep DiveLinuxKit Deep Dive
LinuxKit Deep Dive
 
Kubernetes 1001
Kubernetes 1001Kubernetes 1001
Kubernetes 1001
 
Deep dive in container service discovery
Deep dive in container service discoveryDeep dive in container service discovery
Deep dive in container service discovery
 
Automatically Renew Certificated In Your Kubernetes Cluster
Automatically Renew Certificated In Your Kubernetes ClusterAutomatically Renew Certificated In Your Kubernetes Cluster
Automatically Renew Certificated In Your Kubernetes Cluster
 
Octo talk : docker multi-host networking
Octo talk : docker multi-host networking Octo talk : docker multi-host networking
Octo talk : docker multi-host networking
 
Containerd: Building a Container Supervisor by Michael Crosby
Containerd: Building a Container Supervisor by Michael CrosbyContainerd: Building a Container Supervisor by Michael Crosby
Containerd: Building a Container Supervisor by Michael Crosby
 
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
 
DockerDay2015: Docker Networking
DockerDay2015: Docker NetworkingDockerDay2015: Docker Networking
DockerDay2015: Docker Networking
 
Application-Based Routing
Application-Based RoutingApplication-Based Routing
Application-Based Routing
 
Introduction to CircleCI
Introduction to CircleCIIntroduction to CircleCI
Introduction to CircleCI
 
On-Demand Image Resizing from Part of the monolith to Containerized Microserv...
On-Demand Image Resizing from Part of the monolith to Containerized Microserv...On-Demand Image Resizing from Part of the monolith to Containerized Microserv...
On-Demand Image Resizing from Part of the monolith to Containerized Microserv...
 
When Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architectureWhen Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architecture
 
Docker Networking – Running multi-host applications
Docker Networking – Running multi-host applicationsDocker Networking – Running multi-host applications
Docker Networking – Running multi-host applications
 
Packet Walk(s) In Kubernetes
Packet Walk(s) In KubernetesPacket Walk(s) In Kubernetes
Packet Walk(s) In Kubernetes
 
Docker network performance in the public cloud
Docker network performance in the public cloudDocker network performance in the public cloud
Docker network performance in the public cloud
 

Viewers also liked

Forecast 2014: Software Defined Networking - What's New?
Forecast 2014: Software Defined Networking - What's New? Forecast 2014: Software Defined Networking - What's New?
Forecast 2014: Software Defined Networking - What's New?
Open Data Center Alliance
 
CloudCamp London 15 Sep 2016 - WebVR
CloudCamp London 15 Sep 2016 - WebVRCloudCamp London 15 Sep 2016 - WebVR
CloudCamp London 15 Sep 2016 - WebVR
Chris Swan
 
Deploying Security at Scale
Deploying Security at ScaleDeploying Security at Scale
Deploying Security at Scale
Chris Swan
 
Security protocols in constrained environments
Security protocols in constrained environments Security protocols in constrained environments
Security protocols in constrained environments
Chris Swan
 
IPexpo - What is DevOps, and why should infrastructure operations care?
IPexpo - What is DevOps, and why should infrastructure operations care?IPexpo - What is DevOps, and why should infrastructure operations care?
IPexpo - What is DevOps, and why should infrastructure operations care?
Chris Swan
 
Docker Chicago Meetup - July 2014
Docker Chicago Meetup - July 2014Docker Chicago Meetup - July 2014
Docker Chicago Meetup - July 2014
Cohesive Networks
 
Nodejs - Building a RESTful API
Nodejs - Building a RESTful APINodejs - Building a RESTful API
Nodejs - Building a RESTful APISang Cù
 
Docker Container Security - A Network View
Docker Container Security - A Network ViewDocker Container Security - A Network View
Docker Container Security - A Network View
NeuVector
 
Devoxx 2016: A Developer's Guide to OCI and runC
Devoxx 2016: A Developer's Guide to OCI and runCDevoxx 2016: A Developer's Guide to OCI and runC
Devoxx 2016: A Developer's Guide to OCI and runC
Phil Estes
 
Complete MVC on NodeJS
Complete MVC on NodeJSComplete MVC on NodeJS
Complete MVC on NodeJS
Hüseyin BABAL
 
Docker Networking (Libnetwork) - Lakshman Kumar
Docker Networking (Libnetwork) - Lakshman KumarDocker Networking (Libnetwork) - Lakshman Kumar
Docker Networking (Libnetwork) - Lakshman Kumar
Neependra Khare
 
Microservices Network Architecture 101
Microservices Network Architecture 101Microservices Network Architecture 101
Microservices Network Architecture 101
Cumulus Networks
 
Docker Networking
Docker NetworkingDocker Networking
Docker Networking
Kingston Smiler
 
Erlang User Conference 2016: Container Networking: A Field Report
Erlang User Conference 2016: Container Networking: A Field ReportErlang User Conference 2016: Container Networking: A Field Report
Erlang User Conference 2016: Container Networking: A Field Report
Sargun Dhillon
 
Container Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyondContainer Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyond
KubeAcademy
 
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
PLUMgrid
 
Diving Through The Layers: Investigating runc, containerd, and the Docker eng...
Diving Through The Layers: Investigating runc, containerd, and the Docker eng...Diving Through The Layers: Investigating runc, containerd, and the Docker eng...
Diving Through The Layers: Investigating runc, containerd, and the Docker eng...
Phil Estes
 
DockerCon EU 2015: Docker Networking Deep Dive
DockerCon EU 2015: Docker Networking Deep DiveDockerCon EU 2015: Docker Networking Deep Dive
DockerCon EU 2015: Docker Networking Deep Dive
Docker, Inc.
 
Docker Networking Deep Dive
Docker Networking Deep DiveDocker Networking Deep Dive
Docker Networking Deep Dive
Docker, Inc.
 
Docker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined NetworksDocker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined Networks
Adrien Blind
 

Viewers also liked (20)

Forecast 2014: Software Defined Networking - What's New?
Forecast 2014: Software Defined Networking - What's New? Forecast 2014: Software Defined Networking - What's New?
Forecast 2014: Software Defined Networking - What's New?
 
CloudCamp London 15 Sep 2016 - WebVR
CloudCamp London 15 Sep 2016 - WebVRCloudCamp London 15 Sep 2016 - WebVR
CloudCamp London 15 Sep 2016 - WebVR
 
Deploying Security at Scale
Deploying Security at ScaleDeploying Security at Scale
Deploying Security at Scale
 
Security protocols in constrained environments
Security protocols in constrained environments Security protocols in constrained environments
Security protocols in constrained environments
 
IPexpo - What is DevOps, and why should infrastructure operations care?
IPexpo - What is DevOps, and why should infrastructure operations care?IPexpo - What is DevOps, and why should infrastructure operations care?
IPexpo - What is DevOps, and why should infrastructure operations care?
 
Docker Chicago Meetup - July 2014
Docker Chicago Meetup - July 2014Docker Chicago Meetup - July 2014
Docker Chicago Meetup - July 2014
 
Nodejs - Building a RESTful API
Nodejs - Building a RESTful APINodejs - Building a RESTful API
Nodejs - Building a RESTful API
 
Docker Container Security - A Network View
Docker Container Security - A Network ViewDocker Container Security - A Network View
Docker Container Security - A Network View
 
Devoxx 2016: A Developer's Guide to OCI and runC
Devoxx 2016: A Developer's Guide to OCI and runCDevoxx 2016: A Developer's Guide to OCI and runC
Devoxx 2016: A Developer's Guide to OCI and runC
 
Complete MVC on NodeJS
Complete MVC on NodeJSComplete MVC on NodeJS
Complete MVC on NodeJS
 
Docker Networking (Libnetwork) - Lakshman Kumar
Docker Networking (Libnetwork) - Lakshman KumarDocker Networking (Libnetwork) - Lakshman Kumar
Docker Networking (Libnetwork) - Lakshman Kumar
 
Microservices Network Architecture 101
Microservices Network Architecture 101Microservices Network Architecture 101
Microservices Network Architecture 101
 
Docker Networking
Docker NetworkingDocker Networking
Docker Networking
 
Erlang User Conference 2016: Container Networking: A Field Report
Erlang User Conference 2016: Container Networking: A Field ReportErlang User Conference 2016: Container Networking: A Field Report
Erlang User Conference 2016: Container Networking: A Field Report
 
Container Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyondContainer Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyond
 
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
 
Diving Through The Layers: Investigating runc, containerd, and the Docker eng...
Diving Through The Layers: Investigating runc, containerd, and the Docker eng...Diving Through The Layers: Investigating runc, containerd, and the Docker eng...
Diving Through The Layers: Investigating runc, containerd, and the Docker eng...
 
DockerCon EU 2015: Docker Networking Deep Dive
DockerCon EU 2015: Docker Networking Deep DiveDockerCon EU 2015: Docker Networking Deep Dive
DockerCon EU 2015: Docker Networking Deep Dive
 
Docker Networking Deep Dive
Docker Networking Deep DiveDocker Networking Deep Dive
Docker Networking Deep Dive
 
Docker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined NetworksDocker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined Networks
 

Similar to Chris Swan ONUG Academy - Container Networks Tutorial

Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
Ben Hall
 
Simple docker hosting in FIWARE Lab
Simple docker hosting in FIWARE LabSimple docker hosting in FIWARE Lab
Simple docker hosting in FIWARE Lab
Fernando Lopez Aguilar
 
Docker
DockerDocker
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)
Ben Hall
 
Docker Networking with New Ipvlan and Macvlan Drivers
Docker Networking with New Ipvlan and Macvlan DriversDocker Networking with New Ipvlan and Macvlan Drivers
Docker Networking with New Ipvlan and Macvlan Drivers
Brent Salisbury
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
Michelle Holley
 
Docker, Kubernetes, and Google Cloud
Docker, Kubernetes, and Google CloudDocker, Kubernetes, and Google Cloud
Docker, Kubernetes, and Google Cloud
Samuel Chow
 
Introction to docker swarm
Introction to docker swarmIntroction to docker swarm
Introction to docker swarm
Hsi-Kai Wang
 
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz LachJDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
PROIDEA
 
9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training
videos
 
Docker Security workshop slides
Docker Security workshop slidesDocker Security workshop slides
Docker Security workshop slides
Docker, Inc.
 
How to create your own hack environment
How to create your own hack environmentHow to create your own hack environment
How to create your own hack environment
Sumedt Jitpukdebodin
 
Workshop Consul .- Service Discovery & Failure Detection
Workshop Consul .- Service Discovery & Failure DetectionWorkshop Consul .- Service Discovery & Failure Detection
Workshop Consul .- Service Discovery & Failure Detection
Vincent Composieux
 
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
謝 宗穎
 
Academy PRO: Docker. Lecture 3
Academy PRO: Docker. Lecture 3Academy PRO: Docker. Lecture 3
Academy PRO: Docker. Lecture 3
Binary Studio
 
Containerizing Web Application with Docker
Containerizing Web Application with DockerContainerizing Web Application with Docker
Containerizing Web Application with Docker
msyukor
 
Docker Starter Pack
Docker Starter PackDocker Starter Pack
Docker Starter Pack
Saeed Hajizade
 
The How and Why of Windows containers
The How and Why of Windows containersThe How and Why of Windows containers
The How and Why of Windows containers
Ben Hall
 
moscmy2016: Extending Docker
moscmy2016: Extending Dockermoscmy2016: Extending Docker
moscmy2016: Extending Docker
Mohammad Fairus Khalid
 
DeveloperWeek 2015: A Practical Introduction to Docker
DeveloperWeek 2015: A Practical Introduction to DockerDeveloperWeek 2015: A Practical Introduction to Docker
DeveloperWeek 2015: A Practical Introduction to Docker
Steve Smith
 

Similar to Chris Swan ONUG Academy - Container Networks Tutorial (20)

Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
 
Simple docker hosting in FIWARE Lab
Simple docker hosting in FIWARE LabSimple docker hosting in FIWARE Lab
Simple docker hosting in FIWARE Lab
 
Docker
DockerDocker
Docker
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)
 
Docker Networking with New Ipvlan and Macvlan Drivers
Docker Networking with New Ipvlan and Macvlan DriversDocker Networking with New Ipvlan and Macvlan Drivers
Docker Networking with New Ipvlan and Macvlan Drivers
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
 
Docker, Kubernetes, and Google Cloud
Docker, Kubernetes, and Google CloudDocker, Kubernetes, and Google Cloud
Docker, Kubernetes, and Google Cloud
 
Introction to docker swarm
Introction to docker swarmIntroction to docker swarm
Introction to docker swarm
 
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz LachJDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
 
9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training
 
Docker Security workshop slides
Docker Security workshop slidesDocker Security workshop slides
Docker Security workshop slides
 
How to create your own hack environment
How to create your own hack environmentHow to create your own hack environment
How to create your own hack environment
 
Workshop Consul .- Service Discovery & Failure Detection
Workshop Consul .- Service Discovery & Failure DetectionWorkshop Consul .- Service Discovery & Failure Detection
Workshop Consul .- Service Discovery & Failure Detection
 
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
 
Academy PRO: Docker. Lecture 3
Academy PRO: Docker. Lecture 3Academy PRO: Docker. Lecture 3
Academy PRO: Docker. Lecture 3
 
Containerizing Web Application with Docker
Containerizing Web Application with DockerContainerizing Web Application with Docker
Containerizing Web Application with Docker
 
Docker Starter Pack
Docker Starter PackDocker Starter Pack
Docker Starter Pack
 
The How and Why of Windows containers
The How and Why of Windows containersThe How and Why of Windows containers
The How and Why of Windows containers
 
moscmy2016: Extending Docker
moscmy2016: Extending Dockermoscmy2016: Extending Docker
moscmy2016: Extending Docker
 
DeveloperWeek 2015: A Practical Introduction to Docker
DeveloperWeek 2015: A Practical Introduction to DockerDeveloperWeek 2015: A Practical Introduction to Docker
DeveloperWeek 2015: A Practical Introduction to Docker
 

More from Cohesive Networks

CircleCity Con 2017 - Dwight Koop's talk Cybersecurity for real life: Using t...
CircleCity Con 2017 - Dwight Koop's talk Cybersecurity for real life: Using t...CircleCity Con 2017 - Dwight Koop's talk Cybersecurity for real life: Using t...
CircleCity Con 2017 - Dwight Koop's talk Cybersecurity for real life: Using t...
Cohesive Networks
 
Chris Purrington's talk from CLOUDSEC 2016 "Defense in depth: practical steps...
Chris Purrington's talk from CLOUDSEC 2016 "Defense in depth: practical steps...Chris Purrington's talk from CLOUDSEC 2016 "Defense in depth: practical steps...
Chris Purrington's talk from CLOUDSEC 2016 "Defense in depth: practical steps...
Cohesive Networks
 
Protecting Vital Data With NIST Framework - Patrick Kerpan's Secure260 presen...
Protecting Vital Data With NIST Framework - Patrick Kerpan's Secure260 presen...Protecting Vital Data With NIST Framework - Patrick Kerpan's Secure260 presen...
Protecting Vital Data With NIST Framework - Patrick Kerpan's Secure260 presen...
Cohesive Networks
 
Let’s rethink cloud application security in 2016 - Patrick Kerpan's Secure360...
Let’s rethink cloud application security in 2016 - Patrick Kerpan's Secure360...Let’s rethink cloud application security in 2016 - Patrick Kerpan's Secure360...
Let’s rethink cloud application security in 2016 - Patrick Kerpan's Secure360...
Cohesive Networks
 
Lessons Learned in Deploying the ELK Stack (Elasticsearch, Logstash, and Kibana)
Lessons Learned in Deploying the ELK Stack (Elasticsearch, Logstash, and Kibana)Lessons Learned in Deploying the ELK Stack (Elasticsearch, Logstash, and Kibana)
Lessons Learned in Deploying the ELK Stack (Elasticsearch, Logstash, and Kibana)
Cohesive Networks
 
The Chicago School of Cybersecurity: A Pragmatic Look at the NIST Cybersecuri...
The Chicago School of Cybersecurity: A Pragmatic Look at the NIST Cybersecuri...The Chicago School of Cybersecurity: A Pragmatic Look at the NIST Cybersecuri...
The Chicago School of Cybersecurity: A Pragmatic Look at the NIST Cybersecuri...
Cohesive Networks
 
Comparison: VNS3 vs Vyatta
Comparison: VNS3 vs VyattaComparison: VNS3 vs Vyatta
Comparison: VNS3 vs Vyatta
Cohesive Networks
 
Comparison: VNS3 and Openswan
Comparison: VNS3 and OpenswanComparison: VNS3 and Openswan
Comparison: VNS3 and Openswan
Cohesive Networks
 
Cohesive Networks Support Docs: VNS3 Administration
Cohesive Networks Support Docs: VNS3 AdministrationCohesive Networks Support Docs: VNS3 Administration
Cohesive Networks Support Docs: VNS3 Administration
Cohesive Networks
 
Cohesive Networks Support Docs: VNS3 Configuration Guide
Cohesive Networks Support Docs: VNS3 Configuration Guide Cohesive Networks Support Docs: VNS3 Configuration Guide
Cohesive Networks Support Docs: VNS3 Configuration Guide
Cohesive Networks
 
Cohesive Networks Support Docs: VNS3 Configuration for AWS EC2 Classic
Cohesive Networks Support Docs: VNS3 Configuration for AWS EC2 ClassicCohesive Networks Support Docs: VNS3 Configuration for AWS EC2 Classic
Cohesive Networks Support Docs: VNS3 Configuration for AWS EC2 Classic
Cohesive Networks
 
Cohesive Networks Support Docs: VNS3 Configuration for Amazon VPC
Cohesive Networks Support Docs: VNS3 Configuration for Amazon VPC Cohesive Networks Support Docs: VNS3 Configuration for Amazon VPC
Cohesive Networks Support Docs: VNS3 Configuration for Amazon VPC
Cohesive Networks
 
Cohesive Networks Support Docs: VNS3 Configuration in Azure
Cohesive Networks Support Docs: VNS3 Configuration in Azure Cohesive Networks Support Docs: VNS3 Configuration in Azure
Cohesive Networks Support Docs: VNS3 Configuration in Azure
Cohesive Networks
 
Cohesive Networks Support Docs: VNS3 Configuration for CenturyLink Cloud
Cohesive Networks Support Docs: VNS3 Configuration for CenturyLink Cloud Cohesive Networks Support Docs: VNS3 Configuration for CenturyLink Cloud
Cohesive Networks Support Docs: VNS3 Configuration for CenturyLink Cloud
Cohesive Networks
 
Cohesive Networks Support Docs: VNS3 Configuration for IBM Softlayer
Cohesive Networks Support Docs: VNS3 Configuration for IBM SoftlayerCohesive Networks Support Docs: VNS3 Configuration for IBM Softlayer
Cohesive Networks Support Docs: VNS3 Configuration for IBM Softlayer
Cohesive Networks
 
Cohesive Networks Support Docs: VNS3 Configuration for ElasticHosts
Cohesive Networks Support Docs: VNS3 Configuration for ElasticHosts Cohesive Networks Support Docs: VNS3 Configuration for ElasticHosts
Cohesive Networks Support Docs: VNS3 Configuration for ElasticHosts
Cohesive Networks
 
Cohesive Networks Support Docs: VNS3 Configuration for GCE
Cohesive Networks Support Docs: VNS3 Configuration for GCE Cohesive Networks Support Docs: VNS3 Configuration for GCE
Cohesive Networks Support Docs: VNS3 Configuration for GCE
Cohesive Networks
 
Cohesive Networks Support Docs: Welcome to VNS3 3.5
Cohesive Networks Support Docs: Welcome to VNS3 3.5 Cohesive Networks Support Docs: Welcome to VNS3 3.5
Cohesive Networks Support Docs: Welcome to VNS3 3.5
Cohesive Networks
 
Cohesive Networks Support Docs: VNS3 Side by Side IPsec Tunnel Guide
Cohesive Networks Support Docs: VNS3 Side by Side IPsec Tunnel Guide Cohesive Networks Support Docs: VNS3 Side by Side IPsec Tunnel Guide
Cohesive Networks Support Docs: VNS3 Side by Side IPsec Tunnel Guide
Cohesive Networks
 
Cohesive networks Support Docs: VNS3 3.5 Upgrade Guide
Cohesive networks Support Docs: VNS3 3.5 Upgrade GuideCohesive networks Support Docs: VNS3 3.5 Upgrade Guide
Cohesive networks Support Docs: VNS3 3.5 Upgrade Guide
Cohesive Networks
 

More from Cohesive Networks (20)

CircleCity Con 2017 - Dwight Koop's talk Cybersecurity for real life: Using t...
CircleCity Con 2017 - Dwight Koop's talk Cybersecurity for real life: Using t...CircleCity Con 2017 - Dwight Koop's talk Cybersecurity for real life: Using t...
CircleCity Con 2017 - Dwight Koop's talk Cybersecurity for real life: Using t...
 
Chris Purrington's talk from CLOUDSEC 2016 "Defense in depth: practical steps...
Chris Purrington's talk from CLOUDSEC 2016 "Defense in depth: practical steps...Chris Purrington's talk from CLOUDSEC 2016 "Defense in depth: practical steps...
Chris Purrington's talk from CLOUDSEC 2016 "Defense in depth: practical steps...
 
Protecting Vital Data With NIST Framework - Patrick Kerpan's Secure260 presen...
Protecting Vital Data With NIST Framework - Patrick Kerpan's Secure260 presen...Protecting Vital Data With NIST Framework - Patrick Kerpan's Secure260 presen...
Protecting Vital Data With NIST Framework - Patrick Kerpan's Secure260 presen...
 
Let’s rethink cloud application security in 2016 - Patrick Kerpan's Secure360...
Let’s rethink cloud application security in 2016 - Patrick Kerpan's Secure360...Let’s rethink cloud application security in 2016 - Patrick Kerpan's Secure360...
Let’s rethink cloud application security in 2016 - Patrick Kerpan's Secure360...
 
Lessons Learned in Deploying the ELK Stack (Elasticsearch, Logstash, and Kibana)
Lessons Learned in Deploying the ELK Stack (Elasticsearch, Logstash, and Kibana)Lessons Learned in Deploying the ELK Stack (Elasticsearch, Logstash, and Kibana)
Lessons Learned in Deploying the ELK Stack (Elasticsearch, Logstash, and Kibana)
 
The Chicago School of Cybersecurity: A Pragmatic Look at the NIST Cybersecuri...
The Chicago School of Cybersecurity: A Pragmatic Look at the NIST Cybersecuri...The Chicago School of Cybersecurity: A Pragmatic Look at the NIST Cybersecuri...
The Chicago School of Cybersecurity: A Pragmatic Look at the NIST Cybersecuri...
 
Comparison: VNS3 vs Vyatta
Comparison: VNS3 vs VyattaComparison: VNS3 vs Vyatta
Comparison: VNS3 vs Vyatta
 
Comparison: VNS3 and Openswan
Comparison: VNS3 and OpenswanComparison: VNS3 and Openswan
Comparison: VNS3 and Openswan
 
Cohesive Networks Support Docs: VNS3 Administration
Cohesive Networks Support Docs: VNS3 AdministrationCohesive Networks Support Docs: VNS3 Administration
Cohesive Networks Support Docs: VNS3 Administration
 
Cohesive Networks Support Docs: VNS3 Configuration Guide
Cohesive Networks Support Docs: VNS3 Configuration Guide Cohesive Networks Support Docs: VNS3 Configuration Guide
Cohesive Networks Support Docs: VNS3 Configuration Guide
 
Cohesive Networks Support Docs: VNS3 Configuration for AWS EC2 Classic
Cohesive Networks Support Docs: VNS3 Configuration for AWS EC2 ClassicCohesive Networks Support Docs: VNS3 Configuration for AWS EC2 Classic
Cohesive Networks Support Docs: VNS3 Configuration for AWS EC2 Classic
 
Cohesive Networks Support Docs: VNS3 Configuration for Amazon VPC
Cohesive Networks Support Docs: VNS3 Configuration for Amazon VPC Cohesive Networks Support Docs: VNS3 Configuration for Amazon VPC
Cohesive Networks Support Docs: VNS3 Configuration for Amazon VPC
 
Cohesive Networks Support Docs: VNS3 Configuration in Azure
Cohesive Networks Support Docs: VNS3 Configuration in Azure Cohesive Networks Support Docs: VNS3 Configuration in Azure
Cohesive Networks Support Docs: VNS3 Configuration in Azure
 
Cohesive Networks Support Docs: VNS3 Configuration for CenturyLink Cloud
Cohesive Networks Support Docs: VNS3 Configuration for CenturyLink Cloud Cohesive Networks Support Docs: VNS3 Configuration for CenturyLink Cloud
Cohesive Networks Support Docs: VNS3 Configuration for CenturyLink Cloud
 
Cohesive Networks Support Docs: VNS3 Configuration for IBM Softlayer
Cohesive Networks Support Docs: VNS3 Configuration for IBM SoftlayerCohesive Networks Support Docs: VNS3 Configuration for IBM Softlayer
Cohesive Networks Support Docs: VNS3 Configuration for IBM Softlayer
 
Cohesive Networks Support Docs: VNS3 Configuration for ElasticHosts
Cohesive Networks Support Docs: VNS3 Configuration for ElasticHosts Cohesive Networks Support Docs: VNS3 Configuration for ElasticHosts
Cohesive Networks Support Docs: VNS3 Configuration for ElasticHosts
 
Cohesive Networks Support Docs: VNS3 Configuration for GCE
Cohesive Networks Support Docs: VNS3 Configuration for GCE Cohesive Networks Support Docs: VNS3 Configuration for GCE
Cohesive Networks Support Docs: VNS3 Configuration for GCE
 
Cohesive Networks Support Docs: Welcome to VNS3 3.5
Cohesive Networks Support Docs: Welcome to VNS3 3.5 Cohesive Networks Support Docs: Welcome to VNS3 3.5
Cohesive Networks Support Docs: Welcome to VNS3 3.5
 
Cohesive Networks Support Docs: VNS3 Side by Side IPsec Tunnel Guide
Cohesive Networks Support Docs: VNS3 Side by Side IPsec Tunnel Guide Cohesive Networks Support Docs: VNS3 Side by Side IPsec Tunnel Guide
Cohesive Networks Support Docs: VNS3 Side by Side IPsec Tunnel Guide
 
Cohesive networks Support Docs: VNS3 3.5 Upgrade Guide
Cohesive networks Support Docs: VNS3 3.5 Upgrade GuideCohesive networks Support Docs: VNS3 3.5 Upgrade Guide
Cohesive networks Support Docs: VNS3 3.5 Upgrade Guide
 

Recently uploaded

Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 

Recently uploaded (20)

Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 

Chris Swan ONUG Academy - Container Networks Tutorial

  • 2. copyright 2015 Syllabus 2 • Default Docker Network • Multi container apps • Networking modes • Pipework • Connecting containers across VMs using Open vSwitch. • Using containers for application network services such as proxies, load balancers and for TLS termination
  • 3. copyright 2015 Go at your own pace 3 Detailed instructions (and these slides) are available at: https://github.com/cpswan/container-networking-tutorial is.gd/onugcn
  • 4. copyright 2015 The default Docker network
  • 5. copyright 2015 5 Let’s start with a regular host eth0 10.0.1.1
  • 6. copyright 2015 6 Launch an instance 1) console.aws.amazon.com 2) 3) 4)
  • 7. copyright 2015 7 Launch an instance cont. 5) 6) 7) Go ahead and launch it, then go to the instances view to see private and public IP addresses
  • 8. copyright 2015 8 Connect on SSH and inspect network Connect: ssh -i my_key.pem ubuntu@public_ip Show IPs ip addr Look at NAT rules sudo iptables -t nat -L -n
  • 9. copyright 2015 9 Install Docker eth0 10.0.1.1 docker0 172.17.42.1
  • 10. copyright 2015 10 Install Docker and inspect network Install Docker wget -qO- https://get.docker.com/ | sh Show IPs ip addr Look at NAT rules sudo iptables -t nat -L -n
  • 11. copyright 2015 11 Start a container eth0 10.0.1.1 docker0 172.17.42.1 eth0 172.17.0.1 veth67ab
  • 12. copyright 2015 12 Start a container and inspect network Start container CON1=$(sudo docker run -d cpswan/hello_onug) Get IP CON1IP=$(sudo docker inspect --format='{{.NetworkSettings.IPAddress}}' $CON1) Show IP and use it echo $CON1IP && curl $CON1IP:8080
  • 13. copyright 2015 13 Start another container eth0 10.0.1.1 docker0 172.17.42.1 eth0 172.17.0.1 veth67ab eth0 172.17.0.2 veth9c5d
  • 14. copyright 2015 14 Start 2nd container and use it Start container CON2=$(sudo docker run -d -p 8080:8080 cpswan/hello_onug) Connect to the container curl localhost:8080
  • 15. copyright 2015 15 Take another look at the host network Show IPs ip addr Look at NAT rules sudo iptables -t nat -L -n
  • 17. copyright 2015 17 A typical 3 tier app HTTPS (tcp:443) Web Server (tcp:4567) App Server (tcp:3306) DB Server
  • 18. copyright 2015 18 Launch a 3 tier app with links Create the directory for persistent data sudo mkdir -p /data/mysql Start the database sudo docker run -d -p 3306:3306 --name todomvc_db -v /data/mysql:/var/lib/mysql cpswan/todomvc.mysql Start the app server sudo docker run -d -p 4567:4567 --name todomvc_app --link todomvc_db:db cpswan/todomvc.sinatra Start the web server sudo docker run -d -p 443:443 --name todomvc_ssl --link todomvc_app:app cpswan/todomvc.ssl
  • 19. copyright 2015 19 Look at how the links work Get a shell in the app container sudo docker exec -it $(sudo docker ps | grep sinatra | cut -c1-12) bash Take a look at the app using ENV variable head /opt/sinatra-ToDoMVC-docker/app.rb exit Source is at: https://github.com/cpswan/sinatra-ToDoMVC/blob/docker/app.rb
  • 20. copyright 2015 20 Look at how the links work pt.2 Get a shell in the ssl container sudo docker exec -it $(sudo docker ps | grep ssl | cut -c1-12) bash ENV variable has been hard coded into config tail /etc/nginx/nginx.conf The launch script uses a template to fetch ENV vars cat /etc/nginx/upstream.template exit Source is at: https://github.com/cpswan/dockerToDoMVC/blob/master/NginxSSL/start_nginx.sh
  • 21. copyright 2015 21 Another quick look at iptables Look at NAT rules sudo iptables -t nat -L -n Look at DOCKER chain sudo iptables -L
  • 22. copyright 2015 22 Docker Compose Install Docker Compose sudo apt-get install -y python-pip sudo pip install -U docker-compose Download and view example file wget http://is.gd/onugdc -O docker-compose.yml cat docker-compose.yml
  • 23. copyright 2015 23 Bring up the demo app again Restart Docker to clear out containers sudo service docker restart Invoke Docker compose (in background) sudo docker-compose up & List Docker processes sudo docker ps
  • 26. copyright 2015 26 --net=host example Start a container sudo docker run -d --net=host cpswan/hello_onug Use it curl localhost:8080
  • 28. copyright 2015 28 --net=container example Start containers CON1=$(sudo docker run -d cpswan/todomvc.mysql) sudo docker run --net=container:$CON1 –d cpswan/hello_onug Get IP, show IP and use it CON1IP=$(sudo docker inspect --format='{{.NetworkSettings.IPAddress}}' $CON1) echo $CON1IP && curl $CON1IP:8080
  • 30. copyright 2015 30 --net=none example Clear up sudo service docker restart Start container CON2=$(sudo docker run --net=none -d cpswan/hello_onug) No IP! sudo docker inspect --format='{{.NetworkSettings.IPAddress}}' $CON2
  • 32. copyright 2015 32 Get Pipework Install Pipework sudo wget http://is.gd/onugpw -O /usr/bin/pipework sudo chmod +x /usr/bin/pipework
  • 33. copyright 2015 33 Connect together some containers Start another container CON1=$(sudo docker run --net=none -d cpswan/todomvc.mysql) Add first container to a bridge sudo pipework br1 $CON1 192.168.1.1/24 Add second container to a bridge sudo pipework br1 $CON2 192.168.1.2/24
  • 34. copyright 2015 34 Test connectivity Shell into first container sudo docker exec -it $CON1 bash Show address ip addr Connect to second container for Hello World curl 192.168.1.2:8080 exit
  • 35. copyright 2015 Connecting containers across VMs using Open vSwitch
  • 36. copyright 2015 36 Implement ODCA SDN UM #4 http://www.opendatacenteralliance.org/docs/software_defined_networking_master_usage_model_rev2.pdf
  • 37. copyright 2015 37 Launch another instance 1) Return to console.aws.amazon.com 2) Right click on existing instance and Launch More Like This 3) Launch 4) View Instances and get IP addresses
  • 38. copyright 2015 38 Install Docker and Pipework on 2nd instance Connect: ssh -i my_key.pem ubuntu@public_ip Install Docker wget -qO- https://get.docker.com/ | sh Install Pipework sudo wget http://is.gd/onugpw -O /usr/bin/pipework sudo chmod +x /usr/bin/pipework
  • 39. copyright 2015 39 Install OVS on both instances Install OVS sudo apt-get install -y openvswitch-switch
  • 40. copyright 2015 40 Connect instances together via OVS On first instance sudo ovs-vsctl add-br ovsbr0 sudo ovs-vsctl add-port ovsbr0 gre1 -- set interface gre1 type=gre options:remote_ip=private_IP_instance2 On second instance sudo ovs-vsctl add-br ovsbr0 sudo ovs-vsctl add-port ovsbr0 gre2 -- set interface gre2 type=gre options:remote_ip=private_IP_instance1
  • 41. copyright 2015 41 Test connectivity between VMs On second instance sudo pipework ovsbr0 $(sudo docker run --net=none -d cpswan/hello_onug) 192.168.2.2/24 On first instance CON1=$(sudo docker run --net=none -d cpswan/todomvc.mysql) sudo pipework ovsbr0 $CON1 192.168.2.1/24 sudo docker exec -it $CON1 bash curl 192.168.2.2:8080 exit
  • 43. copyright 2015 43 Run Network App Svcs Run container with HAProxy and Nginx: NAS=$(sudo docker run -d -p 80:80 -p 443:443 -p 4433:4433 cpswan/net-app-svcs) Add another HelloWorld for it to load balance over sudo pipework ovsbr0 $(sudo docker run --net=none -d cpswan/hello_onug) 192.168.2.3/24 Add the NAS container to the OVS bridge sudo pipework ovsbr0 $NAS 192.168.2.4/24
  • 44. copyright 2015 44 Open up AWS Security Groups 1) Return to console.aws.amazon.com 2) Click on Security Groups, launch-wizard-1, inbound, Edit 3) Add HTTP, HTTPS and Custom TCP Rule for 4433 4) Save
  • 45. copyright 2015 45 Load balancer in action Browse to http://public_ip Browse to http://public_ip/haproxy?stats and sign in with: Username: us3r Password: pa55Word
  • 46. copyright 2015 46 TLS termination in action Browse to https://public_ip Accept browser security warnings Bring up certificate information
  • 47. copyright 2015 47 WAF in action Browse to https://public_ip:4433 Accept browser security warnings Browse to https://public_dns_address:4433
  • 48. copyright 2015 48 Take a look at config Get a shell on the NAS container sudo docker exec -it $NAS bash Inspect HAProxy config more /etc/haproxy/haproxy.cfg Inspect Nginx config more /etc/nginx/nginx.conf Source code is at http://is.gd/onugnas
  • 50. copyright 2015 Review 50 • Default Docker Network • Multi container apps • Networking modes • Pipework • Connecting containers across VMs using Open vSwitch. • Using containers for application network services such as proxies, load balancers and for TLS termination
  • 52. copyright 2015 Take a look at 52 • Docker Network Configuration https://docs.docker.com/articles/networking/ • Weave https://github.com/weaveworks/weave • Flocker https://github.com/ClusterHQ/flocker • Socketplane https://github.com/socketplane/socketplane • Tenus https://github.com/milosgajdos83/tenus • Project Calico https://github.com/Metaswitch/calico
  • 53. copyright 2015 Don’t forget to shut down AWS instances!