SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
Docker in productionDocker in production
problems, fixes and beyondproblems, fixes and beyond
Miguel A. Guillen & Ioannis BetasMiguel A. Guillen & Ioannis Betas
We love dockerWe love docker
And we use it in productionAnd we use it in production
And we use it in productionAnd we use it in production
And we had some problemsAnd we had some problems
But we still love dockerBut we still love docker
1.- Don't use links1.- Don't use links
Links are not cool:Links are not cool:
●
Remove containers with linksRemove containers with links
it's...it's...
●
Not multi-host support (yet)Not multi-host support (yet)
●
Difficult to maintain (micro-Difficult to maintain (micro-
services)services)
1.- Don't use links1.- Don't use links
Service discovery:Service discovery:
●
We use consul, dns interface isWe use consul, dns interface is
coolcool
●
Etcd or zookeeperEtcd or zookeeper
●
Simplify your deploymentsSimplify your deployments
●
But we don't have isolationBut we don't have isolation
2.- avoid port redirection2.- avoid port redirection
Take not always works:Take not always works:
●
Memory leak in docker (yes..)Memory leak in docker (yes..)
●
Some services they are not going toSome services they are not going to
work (scala)work (scala)
●
Some services need to announceSome services need to announce
their IPtheir IP
●
Use --net=host“ ”Use --net=host“ ”
3.- driver storage3.- driver storage
By default is devicemapperBy default is devicemapper
●
Not use default loopback optionNot use default loopback option
●
Create a partition with a thinpoolCreate a partition with a thinpool
●
Check other drivers like btrfs orCheck other drivers like btrfs or
unionfsunionfs
●
Do not use aufsDo not use aufs
4.- avoid big images4.- avoid big images
Big images are badBig images are bad
●
Slow deploymentsSlow deployments
●
Not really reusable imagesNot really reusable images
●
Try to use the same base imageTry to use the same base image
●
Automated deployments it's going toAutomated deployments it's going to
fill your disk partitionfill your disk partition
5.- Do not use docker for databases5.- Do not use docker for databases
Or any kind of storage serviceOr any kind of storage service
●
Persistence in docker isPersistence in docker is
complicatedcomplicated
●
Data is saved in the copy on writeData is saved in the copy on write
fsfs
●
Use host for saving the data is anUse host for saving the data is an
optionoption
●
But not use persistence services inBut not use persistence services in
docker (yet)docker (yet)
QUESTIONS?
Thank you!!

Mais conteúdo relacionado

Mais procurados

OSGi Community Event 2010 - Rapid Bundle Development with Bndtools for Eclipse
OSGi Community Event 2010 - Rapid Bundle Development with Bndtools for EclipseOSGi Community Event 2010 - Rapid Bundle Development with Bndtools for Eclipse
OSGi Community Event 2010 - Rapid Bundle Development with Bndtools for Eclipse
mfrancis
 
From Test to Live with Rex
From Test to Live with RexFrom Test to Live with Rex
From Test to Live with Rex
Jan Gehring
 

Mais procurados (20)

Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?
 
about Debian "squeeze" @201002 OSC Tokyospring
about Debian "squeeze" @201002 OSC Tokyospringabout Debian "squeeze" @201002 OSC Tokyospring
about Debian "squeeze" @201002 OSC Tokyospring
 
Develop QNAP NAS App by Docker
Develop QNAP NAS App by DockerDevelop QNAP NAS App by Docker
Develop QNAP NAS App by Docker
 
Redis導入
Redis導入Redis導入
Redis導入
 
Infrastructure development on windows ldn cd meetup
Infrastructure development on windows   ldn cd meetup Infrastructure development on windows   ldn cd meetup
Infrastructure development on windows ldn cd meetup
 
OSGi Community Event 2010 - Rapid Bundle Development with Bndtools for Eclipse
OSGi Community Event 2010 - Rapid Bundle Development with Bndtools for EclipseOSGi Community Event 2010 - Rapid Bundle Development with Bndtools for Eclipse
OSGi Community Event 2010 - Rapid Bundle Development with Bndtools for Eclipse
 
Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...
Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...
Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...
 
find & improve some bottleneck in Debian project (DebConf14 LT)
find & improve some bottleneck in Debian project (DebConf14 LT)find & improve some bottleneck in Debian project (DebConf14 LT)
find & improve some bottleneck in Debian project (DebConf14 LT)
 
Continuous delivery of Windows micro services in the cloud
Continuous delivery of Windows micro services in the cloud Continuous delivery of Windows micro services in the cloud
Continuous delivery of Windows micro services in the cloud
 
Vagrant for Virtualized Development
Vagrant for Virtualized DevelopmentVagrant for Virtualized Development
Vagrant for Virtualized Development
 
Comment Asciidoctor peut vous aider pour votre doc
Comment Asciidoctor peut vous aider pour votre docComment Asciidoctor peut vous aider pour votre doc
Comment Asciidoctor peut vous aider pour votre doc
 
Porting Puppet to OpenBSD
Porting Puppet to OpenBSD Porting Puppet to OpenBSD
Porting Puppet to OpenBSD
 
openSUSE Conference 2017 - YaST News
openSUSE Conference 2017 - YaST NewsopenSUSE Conference 2017 - YaST News
openSUSE Conference 2017 - YaST News
 
openSUSE Conference 2017 - The Docker at Travis Presentation
openSUSE Conference 2017 - The Docker at Travis PresentationopenSUSE Conference 2017 - The Docker at Travis Presentation
openSUSE Conference 2017 - The Docker at Travis Presentation
 
Intro To Gentoo Embedded Cclug
Intro To Gentoo Embedded CclugIntro To Gentoo Embedded Cclug
Intro To Gentoo Embedded Cclug
 
From Test to Live with Rex
From Test to Live with RexFrom Test to Live with Rex
From Test to Live with Rex
 
Production Ready Javascript With Grunt
Production Ready Javascript With GruntProduction Ready Javascript With Grunt
Production Ready Javascript With Grunt
 
Kernel compilation
Kernel compilationKernel compilation
Kernel compilation
 
Drbl tutorial
Drbl tutorialDrbl tutorial
Drbl tutorial
 
[Js hcm] Deploying node.js with Forever.js and nginx
[Js hcm] Deploying node.js with Forever.js and nginx[Js hcm] Deploying node.js with Forever.js and nginx
[Js hcm] Deploying node.js with Forever.js and nginx
 

Semelhante a Docker in production: problems, fixes and beyond

Semelhante a Docker in production: problems, fixes and beyond (20)

Repositories as Code
Repositories as CodeRepositories as Code
Repositories as Code
 
Automating MySQL operations with Puppet
Automating MySQL operations with PuppetAutomating MySQL operations with Puppet
Automating MySQL operations with Puppet
 
Groovy there's a docker in my application pipeline
Groovy there's a docker in my application pipelineGroovy there's a docker in my application pipeline
Groovy there's a docker in my application pipeline
 
OSMC 2017 | Groovy There is a Docker in my Dashing Pipeline by Kris Buytaert
OSMC 2017 | Groovy There is a Docker in my Dashing Pipeline by Kris Buytaert OSMC 2017 | Groovy There is a Docker in my Dashing Pipeline by Kris Buytaert
OSMC 2017 | Groovy There is a Docker in my Dashing Pipeline by Kris Buytaert
 
On the Importance of Infrastructure as Code
On the Importance of Infrastructure as CodeOn the Importance of Infrastructure as Code
On the Importance of Infrastructure as Code
 
Icinga Camp Amsterdam - Infrastructure as Code
Icinga Camp Amsterdam - Infrastructure as CodeIcinga Camp Amsterdam - Infrastructure as Code
Icinga Camp Amsterdam - Infrastructure as Code
 
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
 
Container Days
Container DaysContainer Days
Container Days
 
Taking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and DecideTaking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and Decide
 
Taking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and DecideTaking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and Decide
 
Backup UUASC 9/6/12
Backup UUASC 9/6/12Backup UUASC 9/6/12
Backup UUASC 9/6/12
 
Headless Android at AnDevCon3
Headless Android at AnDevCon3Headless Android at AnDevCon3
Headless Android at AnDevCon3
 
Deploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremDeploying your SaaS stack OnPrem
Deploying your SaaS stack OnPrem
 
Continous Delivery of your Infrastructure
Continous Delivery of your InfrastructureContinous Delivery of your Infrastructure
Continous Delivery of your Infrastructure
 
Smarter deployments with octopus deploy
Smarter deployments with octopus deploySmarter deployments with octopus deploy
Smarter deployments with octopus deploy
 
Headless Android
Headless AndroidHeadless Android
Headless Android
 
Lessons Learned: Using Concourse In Production
Lessons Learned: Using Concourse In ProductionLessons Learned: Using Concourse In Production
Lessons Learned: Using Concourse In Production
 
Run stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 Edition
 
Future of Sysadmin 2014
Future of Sysadmin 2014Future of Sysadmin 2014
Future of Sysadmin 2014
 
Talk on PHP Day Uruguay about Docker
Talk on PHP Day Uruguay about DockerTalk on PHP Day Uruguay about Docker
Talk on PHP Day Uruguay about Docker
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

Docker in production: problems, fixes and beyond

  • 1. Docker in productionDocker in production problems, fixes and beyondproblems, fixes and beyond Miguel A. Guillen & Ioannis BetasMiguel A. Guillen & Ioannis Betas
  • 2. We love dockerWe love docker
  • 3. And we use it in productionAnd we use it in production
  • 4. And we use it in productionAnd we use it in production And we had some problemsAnd we had some problems
  • 5. But we still love dockerBut we still love docker
  • 6. 1.- Don't use links1.- Don't use links Links are not cool:Links are not cool: ● Remove containers with linksRemove containers with links it's...it's... ● Not multi-host support (yet)Not multi-host support (yet) ● Difficult to maintain (micro-Difficult to maintain (micro- services)services)
  • 7. 1.- Don't use links1.- Don't use links Service discovery:Service discovery: ● We use consul, dns interface isWe use consul, dns interface is coolcool ● Etcd or zookeeperEtcd or zookeeper ● Simplify your deploymentsSimplify your deployments ● But we don't have isolationBut we don't have isolation
  • 8. 2.- avoid port redirection2.- avoid port redirection Take not always works:Take not always works: ● Memory leak in docker (yes..)Memory leak in docker (yes..) ● Some services they are not going toSome services they are not going to work (scala)work (scala) ● Some services need to announceSome services need to announce their IPtheir IP ● Use --net=host“ ”Use --net=host“ ”
  • 9. 3.- driver storage3.- driver storage By default is devicemapperBy default is devicemapper ● Not use default loopback optionNot use default loopback option ● Create a partition with a thinpoolCreate a partition with a thinpool ● Check other drivers like btrfs orCheck other drivers like btrfs or unionfsunionfs ● Do not use aufsDo not use aufs
  • 10. 4.- avoid big images4.- avoid big images Big images are badBig images are bad ● Slow deploymentsSlow deployments ● Not really reusable imagesNot really reusable images ● Try to use the same base imageTry to use the same base image ● Automated deployments it's going toAutomated deployments it's going to fill your disk partitionfill your disk partition
  • 11. 5.- Do not use docker for databases5.- Do not use docker for databases Or any kind of storage serviceOr any kind of storage service ● Persistence in docker isPersistence in docker is complicatedcomplicated ● Data is saved in the copy on writeData is saved in the copy on write fsfs ● Use host for saving the data is anUse host for saving the data is an optionoption ● But not use persistence services inBut not use persistence services in docker (yet)docker (yet)