SlideShare a Scribd company logo
1 of 36
Download to read offline
REAL WORLD DOCKER: TEN THINGS WE’VE LEARNED
Speakers 
•Thorsten von Eicken 
•CTO 
•Raphael Simon 
•Senior Systems Architect
•Benefits of Docker 
•Phases of Docker adoption 
•Ten Things We’ve Learned 
Agenda 
2
Who is RightScale? 
Self-Service 
Cloud Analytics 
RightScale Cloud Portfolio Management 
Cloud Management 
Design 
Virtualized 
Environments 
Public 
Clouds 
Other 
Services 
Private Clouds 
Automate 
Multi-Cloud Orchestration 
Operate 
Deploy 
Report 
Optimize
POLLS 
4
The Route to Docker 
Exciting … 
… and scary
Benefits of Docker at RightScale 
1.Ability to run integration systems “all-in-one” 
2.More robust deployments: same code, language runtime and library dependencies in dev, staging and production 
3.Separation of concerns: devs produce Docker images, ops runs them 
4.Easier deployment thanks to isolation: no need to worry about cross-dependencies 
5.Smaller set of base VM images to maintain 
6.Optimization of resource utilization 
7.... 
It’s a spectrum ranging from quick wins to requiring fundamental changes 
●Dev - “more per laptops” 
●QA - more consistent builds 
●Prod - more decoupling from dev
Adopting Docker in Phases 
●Define steps with clear goals 
●Start with quick wins 
●Learn as we go 
●Progress towards the “holy grail”: 
oGeneric cluster of VMs used to dynamically deploy web services 
●4 identified phases - currently deploying phase 2, starting dev on phase 3
Phase 1: Dev / Test 
●Setup CI to build docker images 
●Use containers to: 
oRun unit tests 
oRun “distributed” integration tests 
●Benefits: 
oGuaranteed clean environment with every run 
oAbility to run full integration environments on one box 
oOnly one Jenkins slave image / configuration
Phase 2: App Deploy 
●Push docker images built in CI to production 
●Minimal changes to VM images (need recent kernel + docker daemon) 
●Benefits: 
oCode shipped runs exactly as tested 
oStreamlined deployments
Phase 3: “Generic” Virtual Machines 
●Run “everything” in containers e.g. use fig to start services 
●Dynamic app configuration 
●Benefits: 
oOne base image (Docker + utilities) 
oOn-ramp to Phase 4
Phase 4: Automated “Pod” Deploys 
●Automated container cluster management 
●Scheduler to deploy pods of containers on the “right” host 
oSwarm, Kubernetes, CoreOS Fleet, Mesos ... ? 
●Benefits: 
oFast auto-scaling / auto-healing 
oResource utilization optimization 
oCompletely streamlined continuous delivery
10 Things We’ve Learned 
How to cruise … 
… and what to avoid
Docker captures stdout/stderr 
docker logs command prints combined stdout/err 
docker logs -tail 0 -f : running tail 
1.Logging – how Docker does it 
$ docker run --name hello -d busybox echo hello Santa Barbara 
a3c0caa675e106cc0cf208dade762afcc341ed5b9ea8f3d75b6e2092745a5faa 
$ docker logs hello 
hello Santa Barbara 
$
1: Logging – how not to do it 
●Log to stdout/stderr and collect them in the VM 
oNot all apps log to stdout/err, many don’t add timestamps 
oNo log rotation (can use logrotate with copytruncate) 
oLimited tailing to ship the logs 
●Run syslog daemon inside the container 
oContainers ≠ VMs 
oConfiguration hell
1: Logging – solutions 
●Bind-mount /tmp/dev -> /dev 
oCan’t bind-mount /dev/log! 
oMove /dev/log to /tmp/dev/log 
oSee http://jpetazzo.github.io/2014/08/24/syslog-docker/ 
●Fix docker daemon to forward to syslog 
oFixing stdout/err is happening (#7195) 
oReady to add support for syslog source, but not active 
container 
docker 
syslog 
file 
stdout/err 
json
2: Monitoring – how not to do it 
●Monitoring daemon inside each container 
oContainer ≠ VM 
oMonitoring daemons require privs 
oConfiguration/management hell
Monitoring – how to do it 
●Collect stats in VM using container-aware monitoring 
oStats are in /sys/fs/cgroup/… See: Docker doc article on run-time metrics 
oDocker support: cAdvisor, DataDog, … ? 
●Just monitor at the process level 
$ docker run --name hello -d busybox sleep 60 
3a804b088b432035c5cee541f4baef3cc728d27dded3378fd253c6b4abeb077a 
$ cat /sys/fs/cgroup/cpuacct/docker/3a804b088b432035c5cee541f4ba ef3cc728d27dded3378fd253c6b4abeb077a/cpuacct.usage_percpu 
630924 4774818 7494614 3622216
3.Secrets – How not do it 
Add then remove creds using Dockerfile statements 
FROM rightscale/ruby-215 
ADD github.key /root/.ssh/id_rsa # OOPS 
RUN git clone git@github.com:rs/app 
... 
RUN rm /root/.ssh/id_rsa # DOES NOT HELP
3.Secrets – Take away 
●Each Dockerfile ADD and RUN command results in a new committed layer 
●All image layers (built or pulled) are readily accessible 
●For now: Make sure to remove any unnecessary credential from the context prior to building (see #8) 
●In the future: Take advantage of “nested builds”, see Docker github issue #7115
4.Container access 
●Launch image manually with custom command to troubleshoot 
●Inspect files inside running container 
●Launch shell into running container using docker exec (new in 1.3) 
$ docker exec -it hopeful_shockley /bin/sh 
# ps -ax 
PID TTY STAT TIME COMMAND 
1 ? Ss+ 0:00 /usr/bin/ruby ← Main container process 
43 ? S 0:00 /bin/sh ← Current shell 
49 ? R+ 0:00 ps -ax
5.Aufs vs. btrfs 
●aufs corruption of container filesystems, issue #7229 
oUbuntu use kernel 3.13.0-37 or newer 
oRHEL 6.x/CentOS 6/... use kernel 2.6.32-504 or newer 
●btrfs seems to work better (default in CoreOS) 
●btrfs “requires” separate partition 
$ mkfs.btrfs /dev/xvdb 
$ mount /dev/xvdb /mnt 
$ mkdir -p /mnt/docker 
$ ln -sf /mnt/docker /var/lib/docker 
$ sed -i -e '/DOCKER_OPTS/s/.*/DOCKER_OPTS="-s=btrfs"/' /etc/default/docker 
$ restart docker
6.Got Infinite disk space? 
●Container logs grow indefinitely 
oUse logrotate with copytruncate 
●Containers accumulate indefinitely 
oBecomes an issue if containers are frequently restarted due to upgrades or crashes 
oUse docker run --rm 
but then how do you troubleshoot? 
oWrite script to docker rm old unused containers?
7.Huge Containers – how not to do it 
Overlays don’t go away 
FROM ubuntu:14.04 
RUN apt-get update 
RUN apt-get install -y libjpeg 
RUN apt-get install -y libjpeg-dev build-essential gcc 109 MB 
ADD source /build 5 MB? 
WORKDIR /build - 
RUN ./configure 0 MB 
RUN make 100 MB? 
RUN make install 
CMD /usr/local/bin/myexe
Use a tools container, share build results via volume 
In the future: “nested builds” #7115, “squash” #4232 ? 
FROM ubuntu:14.04 
VOLUME /opt/app 
ADD src /build 
WORKDIR /build 
RUN apt-get update 
RUN apt-get install -y libjpeg-dev build-essential gcc 
RUN ./configure 
RUN make 
RUN make install 
RUN mkdir -p /opt/app 
RUN cp -r /build/out/* /opt/app/ 
7.Huge Containers – solutions
8.Building Images - The issues 
Build typically requires access to private repos 
➔Need to pull from them without leaving passwords/keys around (see issue #3) 
Build typically requires env-specific tools 
➔Need to run the tools in a controlled environment 
◆(Example: import dependency analysis)
8.Building Images - Strategy #1 
public repos 
private repos 
build server 
docker build 
image 
image repository 
$ cat Makefile 
build: Dockerfile 
git clone git@github.com:rs/app 
cd app && rm -rf ./.git 
bundle install 
docker build -t rightscale/app . 
cd .. && rm -rf app 
$ cat Dockerfile 
FROM rightscale/ruby-215 
ADD app /app 
➔Pull code onto build box using creds; copy into container image from local FS 
➔But: Image build is at the mercy of the build box env
8.Building Images - Strategy #2 
public repos 
private repos 
build server 
image repository 
➔Image build runs within appropriate environment 
base 
image 
base image 
docker run 
docker commit 
$ cat Makefile 
build: 
docker run  
--volume $SRC:"/src"  
--name "tmp_app"  
$BASE_IMAGE  
sh -c $BUILD_SCRIPT && 
docker commit tmp_app tmp 
$ cat Dockerfile 
FROM tmp 
RUN "rainbows -c config.rb"
9.Backups 
Userguide: backup-restore-or-migrate-data-volumes 
●Create DB container with /data volume 
●Backup /data “anytime” from the VM 
●Or launch 2nd backup container with --volumes-from 
➣ Simple in a 1-off server, but how to automate in general? 
… or don’t back containers up
10.Docker Clusters 
●Does Docker Cluster software solve all these issues? 
●Swarm, Kubernetes, Mesos, Fleet, … 
oapparently not (yet?) 
●And, they require an overlay network… 
VM 1 
Container 1 
Runs app 1 
172.16.4.3 
VM 2 
Container 2 
Runs app 1 
172.16.4.6 
10.0.0.1 
10.0.0.2
Wrapping up 
A phased approach: 
●Start with highest impact / least disruption 
●Typically around dev & continuous integration 
Beware of issues and pitfalls 
●Good news is that you’re not alone 
●Most become real issues only at scale 
●Use pragmatic work-arounds for the time being 
Overall very promising and great to work with
Q&A 
Read our blogs on Docker 
www.rightscale.com/blog 
Containers vs VMs? Combining Both for Cloud Portability Nirvana 
eng.rightscale.com 
Dockerizing RightScale
Containers vs. Virtual Machines 
Differences: 
●Size 
●Boot time 
●Performance 
●Isolation 
●Compatibility
Containers vs. Processes 
MEM 
PGM 
regs 
proc 
textbook process 
MEM 
regs 
proc 
/etc 
/lib 
/bin 
real process 
MEM 
regs 
proc 
/etc 
/lib 
/bin 
container 
net 
⇒Containers are processes with env, not mini-VMs
Host 1 
VM 1 
Tenant A 
Containers in a VM 
Container 1 
Runs app 1 
Tenant A 
Container 2 
Runs app 2 
Tenant A 
VM 1 
Tenant B 
Container 3 
Runs app 3 
Tenant B 
Container 4 
Runs app 4 
Tenant B 
●Containers are produced by development 
●VMs are produced and managed by ops 
●Hosts are managed by the cloud provider 
Do not trust containers to provide a hard security boundary
THANK YOU.

More Related Content

What's hot

Docker, the Future of DevOps
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOpsandersjanmyr
 
Docker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersDocker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersRyan Hodgin
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureJérôme Petazzoni
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux ContainerBalaji Rajan
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsBen Hall
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerJérôme Petazzoni
 
Docker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSDocker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSFrank Munz
 
Docker for developers
Docker for developersDocker for developers
Docker for developersandrzejsydor
 
Docker introduction
Docker introductionDocker introduction
Docker introductionJo Ee Liew
 
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
Introduction to Docker and all things containers, Docker Meetup at RelateIQIntroduction to Docker and all things containers, Docker Meetup at RelateIQ
Introduction to Docker and all things containers, Docker Meetup at RelateIQdotCloud
 
Docker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XDocker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XJérôme Petazzoni
 
Learn docker in 90 minutes
Learn docker in 90 minutesLearn docker in 90 minutes
Learn docker in 90 minutesLarry Cai
 
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @GuidewireIntroduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @GuidewiredotCloud
 
Docker for any type of workload and any IT Infrastructure
Docker for any type of workload and any IT InfrastructureDocker for any type of workload and any IT Infrastructure
Docker for any type of workload and any IT InfrastructureDocker, Inc.
 
Introduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and DockerIntroduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and DockerChris Taylor
 
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzureDevoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzurePatrick Chanezon
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Jérôme Petazzoni
 
Using Docker in the Real World
Using Docker in the Real WorldUsing Docker in the Real World
Using Docker in the Real WorldTim Haak
 
[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless modeAkihiro Suda
 

What's hot (20)

Docker, the Future of DevOps
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOps
 
Docker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersDocker Overview - Rise of the Containers
Docker Overview - Rise of the Containers
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and Azure
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based Deployments
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with Docker
 
Docker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSDocker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCS
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
Introduction to Docker and all things containers, Docker Meetup at RelateIQIntroduction to Docker and all things containers, Docker Meetup at RelateIQ
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
 
Docker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XDocker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12X
 
Learn docker in 90 minutes
Learn docker in 90 minutesLearn docker in 90 minutes
Learn docker in 90 minutes
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @GuidewireIntroduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
 
Docker for any type of workload and any IT Infrastructure
Docker for any type of workload and any IT InfrastructureDocker for any type of workload and any IT Infrastructure
Docker for any type of workload and any IT Infrastructure
 
Introduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and DockerIntroduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and Docker
 
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzureDevoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9
 
Using Docker in the Real World
Using Docker in the Real WorldUsing Docker in the Real World
Using Docker in the Real World
 
[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode
 

Viewers also liked

6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/20146 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014Christian Beedgen
 
Docker Swarm & Machine
Docker Swarm & MachineDocker Swarm & Machine
Docker Swarm & MachineEueung Mulyana
 
Integrating Tomcat And Apache On Windows
Integrating Tomcat And Apache On WindowsIntegrating Tomcat And Apache On Windows
Integrating Tomcat And Apache On WindowsMohanraj Nagasamy
 
Docker Machine & Docker Swarm
Docker Machine & Docker SwarmDocker Machine & Docker Swarm
Docker Machine & Docker SwarmGuillermo Lucero
 
Using Docker with OpenStack - Hands On!
 Using Docker with OpenStack - Hands On! Using Docker with OpenStack - Hands On!
Using Docker with OpenStack - Hands On!Adrian Otto
 
Blue Whale in an Enterprise Pond
Blue Whale in an Enterprise PondBlue Whale in an Enterprise Pond
Blue Whale in an Enterprise PondDigia Plc
 
Lessons learned running large real-world Docker environments
Lessons learned running large real-world Docker environmentsLessons learned running large real-world Docker environments
Lessons learned running large real-world Docker environmentsAlois Mayr
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy Systemadrian_nye
 
Cloud stack for z Systems - July 2016
Cloud stack for z Systems - July 2016Cloud stack for z Systems - July 2016
Cloud stack for z Systems - July 2016Anderson Bassani
 
Docker and jvm. A good idea?
Docker and jvm. A good idea?Docker and jvm. A good idea?
Docker and jvm. A good idea?Christopher Batey
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionBen Hall
 
Programming the world with Docker
Programming the world with DockerProgramming the world with Docker
Programming the world with DockerPatrick Chanezon
 
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"Daniel Bryant
 
Introduction to Apache Mesos
Introduction to Apache MesosIntroduction to Apache Mesos
Introduction to Apache Mesostomasbart
 
Docker networking Tutorial 101
Docker networking Tutorial 101Docker networking Tutorial 101
Docker networking Tutorial 101LorisPack Project
 
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 NetworksAdrien Blind
 
Container World 2017 - Characterizing and Contrasting Container Orchestrators
Container World 2017 - Characterizing and Contrasting Container OrchestratorsContainer World 2017 - Characterizing and Contrasting Container Orchestrators
Container World 2017 - Characterizing and Contrasting Container OrchestratorsLee Calcote
 
Why Docker
Why DockerWhy Docker
Why DockerdotCloud
 

Viewers also liked (19)

6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/20146 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
 
Docker Swarm & Machine
Docker Swarm & MachineDocker Swarm & Machine
Docker Swarm & Machine
 
Docker研習營
Docker研習營Docker研習營
Docker研習營
 
Integrating Tomcat And Apache On Windows
Integrating Tomcat And Apache On WindowsIntegrating Tomcat And Apache On Windows
Integrating Tomcat And Apache On Windows
 
Docker Machine & Docker Swarm
Docker Machine & Docker SwarmDocker Machine & Docker Swarm
Docker Machine & Docker Swarm
 
Using Docker with OpenStack - Hands On!
 Using Docker with OpenStack - Hands On! Using Docker with OpenStack - Hands On!
Using Docker with OpenStack - Hands On!
 
Blue Whale in an Enterprise Pond
Blue Whale in an Enterprise PondBlue Whale in an Enterprise Pond
Blue Whale in an Enterprise Pond
 
Lessons learned running large real-world Docker environments
Lessons learned running large real-world Docker environmentsLessons learned running large real-world Docker environments
Lessons learned running large real-world Docker environments
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy System
 
Cloud stack for z Systems - July 2016
Cloud stack for z Systems - July 2016Cloud stack for z Systems - July 2016
Cloud stack for z Systems - July 2016
 
Docker and jvm. A good idea?
Docker and jvm. A good idea?Docker and jvm. A good idea?
Docker and jvm. A good idea?
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
 
Programming the world with Docker
Programming the world with DockerProgramming the world with Docker
Programming the world with Docker
 
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
 
Introduction to Apache Mesos
Introduction to Apache MesosIntroduction to Apache Mesos
Introduction to Apache Mesos
 
Docker networking Tutorial 101
Docker networking Tutorial 101Docker networking Tutorial 101
Docker networking Tutorial 101
 
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
 
Container World 2017 - Characterizing and Contrasting Container Orchestrators
Container World 2017 - Characterizing and Contrasting Container OrchestratorsContainer World 2017 - Characterizing and Contrasting Container Orchestrators
Container World 2017 - Characterizing and Contrasting Container Orchestrators
 
Why Docker
Why DockerWhy Docker
Why Docker
 

Similar to Real-World Docker: 10 Things We've Learned

codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014Carlo Bonamico
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 applicationRoman Rodomansky
 
Introduction to Docker and Containers
Introduction to Docker and ContainersIntroduction to Docker and Containers
Introduction to Docker and ContainersDocker, Inc.
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'acorehard_by
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...Codemotion
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDocker, Inc.
 
Magento Docker Setup.pdf
Magento Docker Setup.pdfMagento Docker Setup.pdf
Magento Docker Setup.pdfAbid Malik
 
A Gentle Introduction to Docker and Containers
A Gentle Introduction to Docker and ContainersA Gentle Introduction to Docker and Containers
A Gentle Introduction to Docker and ContainersDocker, Inc.
 
ExpoQA 2017 Using docker to build and test in your laptop and Jenkins
ExpoQA 2017 Using docker to build and test in your laptop and JenkinsExpoQA 2017 Using docker to build and test in your laptop and Jenkins
ExpoQA 2017 Using docker to build and test in your laptop and JenkinsElasTest Project
 
Techtalks: taking docker to production
Techtalks: taking docker to productionTechtalks: taking docker to production
Techtalks: taking docker to productionmuayyad alsadi
 
Adventures in docker compose
Adventures in docker composeAdventures in docker compose
Adventures in docker composeLinkMe Srl
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline Docker, Inc.
 
Docker primer and tips
Docker primer and tipsDocker primer and tips
Docker primer and tipsSamuel Chow
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesJérôme Petazzoni
 
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornJDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornPROIDEA
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with DockerAndrey Hristov
 
Accelerate your software development with Docker
Accelerate your software development with DockerAccelerate your software development with Docker
Accelerate your software development with DockerAndrey Hristov
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsMicael Gallego
 

Similar to Real-World Docker: 10 Things We've Learned (20)

codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
 
Introduction to Docker and Containers
Introduction to Docker and ContainersIntroduction to Docker and Containers
Introduction to Docker and Containers
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
Magento Docker Setup.pdf
Magento Docker Setup.pdfMagento Docker Setup.pdf
Magento Docker Setup.pdf
 
A Gentle Introduction to Docker and Containers
A Gentle Introduction to Docker and ContainersA Gentle Introduction to Docker and Containers
A Gentle Introduction to Docker and Containers
 
ExpoQA 2017 Using docker to build and test in your laptop and Jenkins
ExpoQA 2017 Using docker to build and test in your laptop and JenkinsExpoQA 2017 Using docker to build and test in your laptop and Jenkins
ExpoQA 2017 Using docker to build and test in your laptop and Jenkins
 
JOSA TechTalk: Taking Docker to Production
JOSA TechTalk: Taking Docker to ProductionJOSA TechTalk: Taking Docker to Production
JOSA TechTalk: Taking Docker to Production
 
Techtalks: taking docker to production
Techtalks: taking docker to productionTechtalks: taking docker to production
Techtalks: taking docker to production
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 
Adventures in docker compose
Adventures in docker composeAdventures in docker compose
Adventures in docker compose
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
 
Docker primer and tips
Docker primer and tipsDocker primer and tips
Docker primer and tips
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los Angeles
 
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornJDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with Docker
 
Accelerate your software development with Docker
Accelerate your software development with DockerAccelerate your software development with Docker
Accelerate your software development with Docker
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and Jenkins
 

More from RightScale

10 Must-Have Automated Cloud Policies for IT Governance
10 Must-Have Automated Cloud Policies for IT Governance10 Must-Have Automated Cloud Policies for IT Governance
10 Must-Have Automated Cloud Policies for IT GovernanceRightScale
 
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOpsKubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOpsRightScale
 
Optimize Software, SaaS, and Cloud with Flexera and RightScale
Optimize Software, SaaS, and Cloud with Flexera and RightScaleOptimize Software, SaaS, and Cloud with Flexera and RightScale
Optimize Software, SaaS, and Cloud with Flexera and RightScaleRightScale
 
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About Now
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About NowPrepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About Now
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About NowRightScale
 
How to Set Up a Cloud Cost Optimization Process for your Enterprise
How to Set Up a Cloud Cost Optimization Process for your EnterpriseHow to Set Up a Cloud Cost Optimization Process for your Enterprise
How to Set Up a Cloud Cost Optimization Process for your EnterpriseRightScale
 
Multi-Cloud Management with RightScale CMP (Demo)
Multi-Cloud Management with RightScale CMP (Demo)Multi-Cloud Management with RightScale CMP (Demo)
Multi-Cloud Management with RightScale CMP (Demo)RightScale
 
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBMComparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBMRightScale
 
How to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale OptimaHow to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale OptimaRightScale
 
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...RightScale
 
Using RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider ToolsUsing RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider ToolsRightScale
 
Best Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and ComplianceBest Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and ComplianceRightScale
 
Automating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and MoreAutomating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and MoreRightScale
 
The 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for EnterprisesThe 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for EnterprisesRightScale
 
9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage Costs9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage CostsRightScale
 
Serverless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBMServerless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBMRightScale
 
Best Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP SuccessBest Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP SuccessRightScale
 
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMCloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMRightScale
 
2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud Report2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud ReportRightScale
 
Got a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP HelpsGot a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP HelpsRightScale
 
How to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale OptimaHow to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale OptimaRightScale
 

More from RightScale (20)

10 Must-Have Automated Cloud Policies for IT Governance
10 Must-Have Automated Cloud Policies for IT Governance10 Must-Have Automated Cloud Policies for IT Governance
10 Must-Have Automated Cloud Policies for IT Governance
 
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOpsKubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
 
Optimize Software, SaaS, and Cloud with Flexera and RightScale
Optimize Software, SaaS, and Cloud with Flexera and RightScaleOptimize Software, SaaS, and Cloud with Flexera and RightScale
Optimize Software, SaaS, and Cloud with Flexera and RightScale
 
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About Now
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About NowPrepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About Now
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About Now
 
How to Set Up a Cloud Cost Optimization Process for your Enterprise
How to Set Up a Cloud Cost Optimization Process for your EnterpriseHow to Set Up a Cloud Cost Optimization Process for your Enterprise
How to Set Up a Cloud Cost Optimization Process for your Enterprise
 
Multi-Cloud Management with RightScale CMP (Demo)
Multi-Cloud Management with RightScale CMP (Demo)Multi-Cloud Management with RightScale CMP (Demo)
Multi-Cloud Management with RightScale CMP (Demo)
 
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBMComparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
 
How to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale OptimaHow to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale Optima
 
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
 
Using RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider ToolsUsing RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider Tools
 
Best Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and ComplianceBest Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and Compliance
 
Automating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and MoreAutomating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and More
 
The 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for EnterprisesThe 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for Enterprises
 
9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage Costs9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage Costs
 
Serverless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBMServerless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBM
 
Best Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP SuccessBest Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP Success
 
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMCloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
 
2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud Report2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud Report
 
Got a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP HelpsGot a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP Helps
 
How to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale OptimaHow to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale Optima
 

Recently uploaded

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Recently uploaded (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Real-World Docker: 10 Things We've Learned

  • 1. REAL WORLD DOCKER: TEN THINGS WE’VE LEARNED
  • 2. Speakers •Thorsten von Eicken •CTO •Raphael Simon •Senior Systems Architect
  • 3. •Benefits of Docker •Phases of Docker adoption •Ten Things We’ve Learned Agenda 2
  • 4. Who is RightScale? Self-Service Cloud Analytics RightScale Cloud Portfolio Management Cloud Management Design Virtualized Environments Public Clouds Other Services Private Clouds Automate Multi-Cloud Orchestration Operate Deploy Report Optimize
  • 6. The Route to Docker Exciting … … and scary
  • 7. Benefits of Docker at RightScale 1.Ability to run integration systems “all-in-one” 2.More robust deployments: same code, language runtime and library dependencies in dev, staging and production 3.Separation of concerns: devs produce Docker images, ops runs them 4.Easier deployment thanks to isolation: no need to worry about cross-dependencies 5.Smaller set of base VM images to maintain 6.Optimization of resource utilization 7.... It’s a spectrum ranging from quick wins to requiring fundamental changes ●Dev - “more per laptops” ●QA - more consistent builds ●Prod - more decoupling from dev
  • 8. Adopting Docker in Phases ●Define steps with clear goals ●Start with quick wins ●Learn as we go ●Progress towards the “holy grail”: oGeneric cluster of VMs used to dynamically deploy web services ●4 identified phases - currently deploying phase 2, starting dev on phase 3
  • 9. Phase 1: Dev / Test ●Setup CI to build docker images ●Use containers to: oRun unit tests oRun “distributed” integration tests ●Benefits: oGuaranteed clean environment with every run oAbility to run full integration environments on one box oOnly one Jenkins slave image / configuration
  • 10. Phase 2: App Deploy ●Push docker images built in CI to production ●Minimal changes to VM images (need recent kernel + docker daemon) ●Benefits: oCode shipped runs exactly as tested oStreamlined deployments
  • 11. Phase 3: “Generic” Virtual Machines ●Run “everything” in containers e.g. use fig to start services ●Dynamic app configuration ●Benefits: oOne base image (Docker + utilities) oOn-ramp to Phase 4
  • 12. Phase 4: Automated “Pod” Deploys ●Automated container cluster management ●Scheduler to deploy pods of containers on the “right” host oSwarm, Kubernetes, CoreOS Fleet, Mesos ... ? ●Benefits: oFast auto-scaling / auto-healing oResource utilization optimization oCompletely streamlined continuous delivery
  • 13. 10 Things We’ve Learned How to cruise … … and what to avoid
  • 14. Docker captures stdout/stderr docker logs command prints combined stdout/err docker logs -tail 0 -f : running tail 1.Logging – how Docker does it $ docker run --name hello -d busybox echo hello Santa Barbara a3c0caa675e106cc0cf208dade762afcc341ed5b9ea8f3d75b6e2092745a5faa $ docker logs hello hello Santa Barbara $
  • 15. 1: Logging – how not to do it ●Log to stdout/stderr and collect them in the VM oNot all apps log to stdout/err, many don’t add timestamps oNo log rotation (can use logrotate with copytruncate) oLimited tailing to ship the logs ●Run syslog daemon inside the container oContainers ≠ VMs oConfiguration hell
  • 16. 1: Logging – solutions ●Bind-mount /tmp/dev -> /dev oCan’t bind-mount /dev/log! oMove /dev/log to /tmp/dev/log oSee http://jpetazzo.github.io/2014/08/24/syslog-docker/ ●Fix docker daemon to forward to syslog oFixing stdout/err is happening (#7195) oReady to add support for syslog source, but not active container docker syslog file stdout/err json
  • 17. 2: Monitoring – how not to do it ●Monitoring daemon inside each container oContainer ≠ VM oMonitoring daemons require privs oConfiguration/management hell
  • 18. Monitoring – how to do it ●Collect stats in VM using container-aware monitoring oStats are in /sys/fs/cgroup/… See: Docker doc article on run-time metrics oDocker support: cAdvisor, DataDog, … ? ●Just monitor at the process level $ docker run --name hello -d busybox sleep 60 3a804b088b432035c5cee541f4baef3cc728d27dded3378fd253c6b4abeb077a $ cat /sys/fs/cgroup/cpuacct/docker/3a804b088b432035c5cee541f4ba ef3cc728d27dded3378fd253c6b4abeb077a/cpuacct.usage_percpu 630924 4774818 7494614 3622216
  • 19. 3.Secrets – How not do it Add then remove creds using Dockerfile statements FROM rightscale/ruby-215 ADD github.key /root/.ssh/id_rsa # OOPS RUN git clone git@github.com:rs/app ... RUN rm /root/.ssh/id_rsa # DOES NOT HELP
  • 20. 3.Secrets – Take away ●Each Dockerfile ADD and RUN command results in a new committed layer ●All image layers (built or pulled) are readily accessible ●For now: Make sure to remove any unnecessary credential from the context prior to building (see #8) ●In the future: Take advantage of “nested builds”, see Docker github issue #7115
  • 21. 4.Container access ●Launch image manually with custom command to troubleshoot ●Inspect files inside running container ●Launch shell into running container using docker exec (new in 1.3) $ docker exec -it hopeful_shockley /bin/sh # ps -ax PID TTY STAT TIME COMMAND 1 ? Ss+ 0:00 /usr/bin/ruby ← Main container process 43 ? S 0:00 /bin/sh ← Current shell 49 ? R+ 0:00 ps -ax
  • 22. 5.Aufs vs. btrfs ●aufs corruption of container filesystems, issue #7229 oUbuntu use kernel 3.13.0-37 or newer oRHEL 6.x/CentOS 6/... use kernel 2.6.32-504 or newer ●btrfs seems to work better (default in CoreOS) ●btrfs “requires” separate partition $ mkfs.btrfs /dev/xvdb $ mount /dev/xvdb /mnt $ mkdir -p /mnt/docker $ ln -sf /mnt/docker /var/lib/docker $ sed -i -e '/DOCKER_OPTS/s/.*/DOCKER_OPTS="-s=btrfs"/' /etc/default/docker $ restart docker
  • 23. 6.Got Infinite disk space? ●Container logs grow indefinitely oUse logrotate with copytruncate ●Containers accumulate indefinitely oBecomes an issue if containers are frequently restarted due to upgrades or crashes oUse docker run --rm but then how do you troubleshoot? oWrite script to docker rm old unused containers?
  • 24. 7.Huge Containers – how not to do it Overlays don’t go away FROM ubuntu:14.04 RUN apt-get update RUN apt-get install -y libjpeg RUN apt-get install -y libjpeg-dev build-essential gcc 109 MB ADD source /build 5 MB? WORKDIR /build - RUN ./configure 0 MB RUN make 100 MB? RUN make install CMD /usr/local/bin/myexe
  • 25. Use a tools container, share build results via volume In the future: “nested builds” #7115, “squash” #4232 ? FROM ubuntu:14.04 VOLUME /opt/app ADD src /build WORKDIR /build RUN apt-get update RUN apt-get install -y libjpeg-dev build-essential gcc RUN ./configure RUN make RUN make install RUN mkdir -p /opt/app RUN cp -r /build/out/* /opt/app/ 7.Huge Containers – solutions
  • 26. 8.Building Images - The issues Build typically requires access to private repos ➔Need to pull from them without leaving passwords/keys around (see issue #3) Build typically requires env-specific tools ➔Need to run the tools in a controlled environment ◆(Example: import dependency analysis)
  • 27. 8.Building Images - Strategy #1 public repos private repos build server docker build image image repository $ cat Makefile build: Dockerfile git clone git@github.com:rs/app cd app && rm -rf ./.git bundle install docker build -t rightscale/app . cd .. && rm -rf app $ cat Dockerfile FROM rightscale/ruby-215 ADD app /app ➔Pull code onto build box using creds; copy into container image from local FS ➔But: Image build is at the mercy of the build box env
  • 28. 8.Building Images - Strategy #2 public repos private repos build server image repository ➔Image build runs within appropriate environment base image base image docker run docker commit $ cat Makefile build: docker run --volume $SRC:"/src" --name "tmp_app" $BASE_IMAGE sh -c $BUILD_SCRIPT && docker commit tmp_app tmp $ cat Dockerfile FROM tmp RUN "rainbows -c config.rb"
  • 29. 9.Backups Userguide: backup-restore-or-migrate-data-volumes ●Create DB container with /data volume ●Backup /data “anytime” from the VM ●Or launch 2nd backup container with --volumes-from ➣ Simple in a 1-off server, but how to automate in general? … or don’t back containers up
  • 30. 10.Docker Clusters ●Does Docker Cluster software solve all these issues? ●Swarm, Kubernetes, Mesos, Fleet, … oapparently not (yet?) ●And, they require an overlay network… VM 1 Container 1 Runs app 1 172.16.4.3 VM 2 Container 2 Runs app 1 172.16.4.6 10.0.0.1 10.0.0.2
  • 31. Wrapping up A phased approach: ●Start with highest impact / least disruption ●Typically around dev & continuous integration Beware of issues and pitfalls ●Good news is that you’re not alone ●Most become real issues only at scale ●Use pragmatic work-arounds for the time being Overall very promising and great to work with
  • 32. Q&A Read our blogs on Docker www.rightscale.com/blog Containers vs VMs? Combining Both for Cloud Portability Nirvana eng.rightscale.com Dockerizing RightScale
  • 33. Containers vs. Virtual Machines Differences: ●Size ●Boot time ●Performance ●Isolation ●Compatibility
  • 34. Containers vs. Processes MEM PGM regs proc textbook process MEM regs proc /etc /lib /bin real process MEM regs proc /etc /lib /bin container net ⇒Containers are processes with env, not mini-VMs
  • 35. Host 1 VM 1 Tenant A Containers in a VM Container 1 Runs app 1 Tenant A Container 2 Runs app 2 Tenant A VM 1 Tenant B Container 3 Runs app 3 Tenant B Container 4 Runs app 4 Tenant B ●Containers are produced by development ●VMs are produced and managed by ops ●Hosts are managed by the cloud provider Do not trust containers to provide a hard security boundary