SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Using Machine & Docker to
develop & build Docker
Arnaud Porterie - @icecrime - 2015-05-13 - Paris @D2SI
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Who am I?
• Arnaud Porterie
• @icecrime on and
• Joined Docker in Nov 2014 (previously in Paris)
• Project org: core maintainer
• Company org: engineering manager for Engine
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Who am I?
• Arnaud Porterie
• @icecrime on and
• Joined Docker in Nov 2014 (previously in Paris)
• Project org: core maintainer
• Company org: engineering manager for Engine
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Core maintainers
• Have write-access to the repo
• Are able to “LGTM”
• Review the 100+ PR we receive each week
• Don’t get to commit directly to master neither!
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Core maintainers
Maintainers Docker Inc.
Docker Inc.

sponsored maintainers
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Core maintainers
Maintainers
Docker
Google
Microsoft
RedHatIBM
…
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Docker platform overview
Engine




Sw
arm
M
achine
C
om
pose
K
item
atic
distribution
libcontainer
libnetwork
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Docker platform overview
Component GitHub Contributors Stats
Engine docker/docker 928
Compose docker/compose 86
Machine docker/machine 62
Swarm docker/swarm 64
Kitematic kitematic/kitematic 18
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
That being said…
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
What do we want to do?
• Start from a “clean” Mac (with docker client, git, …)
• Set up a development Linux VM
• Get and build the docker/docker repository
• See how we use Docker all along the way
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Setting up a Linux host
• Today, the Docker daemon is Linux only
• The client runs natively on OSX and Windows
• The daemon is being ported to Windows Server
• We need a Linux with Docker to develop on Docker
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Introducing Machine
• The easiest way to provision a Linux host with
Docker installed
• https://github.com/docker/machine
Machine lets you create Docker hosts on your computer, on
cloud providers, and inside your own data center. It creates
servers, installs Docker on them, then configures the Docker
client to talk to them.
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Demo: using machine
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Docker Engine source tree
• Client and daemon are the same binary
• Dependencies are vendored
• Commodity Makefile
$ git clone https://github.com/docker/docker
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Demo: a peek at the source
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Docker’s Dockerfile
• Yes, there’s a Dockerfile in the docker repo
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Docker’s Dockerfile
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Docker’s Dockerfile
• Describes the Docker development environment
• System dependencies
• Golang packages
• …
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Demo: docker build
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Why it matters
• From 0 to a working dev env in minutes
• No need to know versions of Go & dependencies
• No need to install anything on my host
• Consistency across all developers
• Also it’s Docker, so it can do everything Docker can
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
If I already have a Dockerfile
• Don’t mix deployment image with dev image
• Dev dependencies != runtime dependencies
• You can have multiple Dockerfiles since 1.5.0
$ ls Dockerfile*
Dockerfile Dockerfile.dev
$ docker build -f Dockerfile.dev -t dev .
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Development flow
• Sources are baked in the image
• Need to rebuild every time something changes
• Alternative: rely on bind mounts
• On Mac /Users/ happens to be shared by default
# Upload docker source
COPY . /go/src/github.com/docker/docker
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Demo: editing from the host
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Parallelizing work
• When your dev env is a Docker image, it’s easy to
spawn many of them
• For different projects
• For different branches
• On different hosts
• …
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Example: working with branches
• Build an image per branch
• Run a container for each
• Rely on docker attach and ^P^Q
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Demo: working with branches
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Key points
• A new dev is operational in minutes
• It’s “just” a Docker image: different dev will choose
to run it differently, and on different hosts
• It’s “just” containers: spawn as many as needed
• What works for Docker can probably work for you!
Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI
Thanks!
Questions?

Mais conteúdo relacionado

Mais procurados

Locally it worked! virtualizing docker
Locally it worked! virtualizing dockerLocally it worked! virtualizing docker
Locally it worked! virtualizing dockerSascha Brinkmann
 
Microservices using relocatable Docker containers
Microservices using relocatable Docker containersMicroservices using relocatable Docker containers
Microservices using relocatable Docker containersMauricio Garavaglia
 
Docker - 15 great Tutorials
Docker - 15 great TutorialsDocker - 15 great Tutorials
Docker - 15 great TutorialsJulien Barbier
 
Docker - modern platform for developement and operations
Docker - modern platform for developement and operationsDocker - modern platform for developement and operations
Docker - modern platform for developement and operationsLadislav Prskavec
 
Development Swarm Cluster
Development Swarm ClusterDevelopment Swarm Cluster
Development Swarm ClusterAlexei Ledenev
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetesBen Hall
 
From Arm to Z: Building, Shipping, and Running a Multi-platform Docker Swarm ...
From Arm to Z: Building, Shipping, and Running a Multi-platform Docker Swarm ...From Arm to Z: Building, Shipping, and Running a Multi-platform Docker Swarm ...
From Arm to Z: Building, Shipping, and Running a Multi-platform Docker Swarm ...Docker, Inc.
 
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena TapiaFrom Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena TapiaDocker, Inc.
 
Contribute 101: Compose/Kitematic/Machine by Ben Bonnefoy
Contribute 101: Compose/Kitematic/Machine by Ben BonnefoyContribute 101: Compose/Kitematic/Machine by Ben Bonnefoy
Contribute 101: Compose/Kitematic/Machine by Ben BonnefoyDocker, Inc.
 
Better delivery with DevOps Driven Development
Better delivery with DevOps Driven DevelopmentBetter delivery with DevOps Driven Development
Better delivery with DevOps Driven DevelopmentJirayut Nimsaeng
 
Dockerizing stashboard - Docker meetup at Twilio
Dockerizing stashboard - Docker meetup at TwilioDockerizing stashboard - Docker meetup at Twilio
Dockerizing stashboard - Docker meetup at TwiliodotCloud
 
DockerDay2015: Docker orchestration for sysadmin
DockerDay2015: Docker orchestration for sysadminDockerDay2015: Docker orchestration for sysadmin
DockerDay2015: Docker orchestration for sysadminDocker-Hanoi
 
Docker at MoneyBird
Docker at MoneyBirdDocker at MoneyBird
Docker at MoneyBirdEdwin Vlieg
 
How to contribute for Docker Labs
How to contribute for Docker LabsHow to contribute for Docker Labs
How to contribute for Docker LabsAjeet Singh Raina
 
Lessons Learned: Using Concourse In Production
Lessons Learned: Using Concourse In ProductionLessons Learned: Using Concourse In Production
Lessons Learned: Using Concourse In ProductionShingo Omura
 
Dev with Docker WCPHX 2019
Dev with Docker WCPHX 2019Dev with Docker WCPHX 2019
Dev with Docker WCPHX 2019Maura Teal
 
DockerDay2015: Keynote
DockerDay2015: KeynoteDockerDay2015: Keynote
DockerDay2015: KeynoteDocker-Hanoi
 

Mais procurados (20)

Locally it worked! virtualizing docker
Locally it worked! virtualizing dockerLocally it worked! virtualizing docker
Locally it worked! virtualizing docker
 
Microservices using relocatable Docker containers
Microservices using relocatable Docker containersMicroservices using relocatable Docker containers
Microservices using relocatable Docker containers
 
Docker - 15 great Tutorials
Docker - 15 great TutorialsDocker - 15 great Tutorials
Docker - 15 great Tutorials
 
Docker - modern platform for developement and operations
Docker - modern platform for developement and operationsDocker - modern platform for developement and operations
Docker - modern platform for developement and operations
 
Development Swarm Cluster
Development Swarm ClusterDevelopment Swarm Cluster
Development Swarm Cluster
 
Docker e git lab
Docker e git labDocker e git lab
Docker e git lab
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
From Arm to Z: Building, Shipping, and Running a Multi-platform Docker Swarm ...
From Arm to Z: Building, Shipping, and Running a Multi-platform Docker Swarm ...From Arm to Z: Building, Shipping, and Running a Multi-platform Docker Swarm ...
From Arm to Z: Building, Shipping, and Running a Multi-platform Docker Swarm ...
 
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena TapiaFrom Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
 
Contribute 101: Compose/Kitematic/Machine by Ben Bonnefoy
Contribute 101: Compose/Kitematic/Machine by Ben BonnefoyContribute 101: Compose/Kitematic/Machine by Ben Bonnefoy
Contribute 101: Compose/Kitematic/Machine by Ben Bonnefoy
 
Better delivery with DevOps Driven Development
Better delivery with DevOps Driven DevelopmentBetter delivery with DevOps Driven Development
Better delivery with DevOps Driven Development
 
Dockerizing stashboard - Docker meetup at Twilio
Dockerizing stashboard - Docker meetup at TwilioDockerizing stashboard - Docker meetup at Twilio
Dockerizing stashboard - Docker meetup at Twilio
 
DockerDay2015: Docker orchestration for sysadmin
DockerDay2015: Docker orchestration for sysadminDockerDay2015: Docker orchestration for sysadmin
DockerDay2015: Docker orchestration for sysadmin
 
Docker at MoneyBird
Docker at MoneyBirdDocker at MoneyBird
Docker at MoneyBird
 
How to contribute for Docker Labs
How to contribute for Docker LabsHow to contribute for Docker Labs
How to contribute for Docker Labs
 
Lessons Learned: Using Concourse In Production
Lessons Learned: Using Concourse In ProductionLessons Learned: Using Concourse In Production
Lessons Learned: Using Concourse In Production
 
Dev with Docker WCPHX 2019
Dev with Docker WCPHX 2019Dev with Docker WCPHX 2019
Dev with Docker WCPHX 2019
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
DockerDay2015: Keynote
DockerDay2015: KeynoteDockerDay2015: Keynote
DockerDay2015: Keynote
 

Destaque

Arnaud Porterie - The Truth About C++
Arnaud Porterie - The Truth About C++Arnaud Porterie - The Truth About C++
Arnaud Porterie - The Truth About C++Arnaud Porterie
 
DockerCon US 2016 - Scaling Open Source operations
DockerCon US 2016 - Scaling Open Source operationsDockerCon US 2016 - Scaling Open Source operations
DockerCon US 2016 - Scaling Open Source operationsArnaud Porterie
 
How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)Jérôme Petazzoni
 
DockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
DockerCon US 2016 - Extending Docker With APIs, Drivers, and PluginsDockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
DockerCon US 2016 - Extending Docker With APIs, Drivers, and PluginsArnaud Porterie
 
OpenNebulaConf2015 2.03 Docker-Machine and OpenNebula - Jaime Melis
OpenNebulaConf2015 2.03 Docker-Machine and OpenNebula - Jaime MelisOpenNebulaConf2015 2.03 Docker-Machine and OpenNebula - Jaime Melis
OpenNebulaConf2015 2.03 Docker-Machine and OpenNebula - Jaime MelisOpenNebula Project
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryMario IC
 
Computer Network MAC Layer Notes as per RGPV syllabus
Computer Network MAC Layer Notes as per RGPV syllabusComputer Network MAC Layer Notes as per RGPV syllabus
Computer Network MAC Layer Notes as per RGPV syllabusNANDINI SHARMA
 

Destaque (7)

Arnaud Porterie - The Truth About C++
Arnaud Porterie - The Truth About C++Arnaud Porterie - The Truth About C++
Arnaud Porterie - The Truth About C++
 
DockerCon US 2016 - Scaling Open Source operations
DockerCon US 2016 - Scaling Open Source operationsDockerCon US 2016 - Scaling Open Source operations
DockerCon US 2016 - Scaling Open Source operations
 
How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)
 
DockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
DockerCon US 2016 - Extending Docker With APIs, Drivers, and PluginsDockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
DockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
 
OpenNebulaConf2015 2.03 Docker-Machine and OpenNebula - Jaime Melis
OpenNebulaConf2015 2.03 Docker-Machine and OpenNebula - Jaime MelisOpenNebulaConf2015 2.03 Docker-Machine and OpenNebula - Jaime Melis
OpenNebulaConf2015 2.03 Docker-Machine and OpenNebula - Jaime Melis
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
 
Computer Network MAC Layer Notes as per RGPV syllabus
Computer Network MAC Layer Notes as per RGPV syllabusComputer Network MAC Layer Notes as per RGPV syllabus
Computer Network MAC Layer Notes as per RGPV syllabus
 

Semelhante a Arnaud Porterie - Using Machine & Docker to develop & build Docker

Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the Worlddamovsky
 
Joomla Continuous Delivery with Docker
Joomla Continuous Delivery with DockerJoomla Continuous Delivery with Docker
Joomla Continuous Delivery with DockerJirayut Nimsaeng
 
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on OpenstackScaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on OpenstackBobby DeVeaux, DevOps Consultant
 
Docker based-pipelines
Docker based-pipelinesDocker based-pipelines
Docker based-pipelinesDevOps.com
 
2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users Group2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users GroupTodd Fritz
 
Docker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshDocker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshCodefresh
 
DevAssistant, Docker and You
DevAssistant, Docker and YouDevAssistant, Docker and You
DevAssistant, Docker and YouBalaBit
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochranedotCloud
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with DockerGeeta Vinnakota
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSRoss Kukulinski
 
Habitat Workshop at Velocity London 2017
Habitat Workshop at Velocity London 2017Habitat Workshop at Velocity London 2017
Habitat Workshop at Velocity London 2017Mandi Walls
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for DevelopmentChris Tankersley
 

Semelhante a Arnaud Porterie - Using Machine & Docker to develop & build Docker (20)

Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the World
 
Why to docker
Why to dockerWhy to docker
Why to docker
 
Joomla Continuous Delivery with Docker
Joomla Continuous Delivery with DockerJoomla Continuous Delivery with Docker
Joomla Continuous Delivery with Docker
 
Dockerize All The Things
Dockerize All The ThingsDockerize All The Things
Dockerize All The Things
 
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on OpenstackScaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
 
Docker based-pipelines
Docker based-pipelinesDocker based-pipelines
Docker based-pipelines
 
R meetup 20161011v2
R meetup 20161011v2R meetup 20161011v2
R meetup 20161011v2
 
2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users Group2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users Group
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
 
Docker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshDocker based-Pipelines with Codefresh
Docker based-Pipelines with Codefresh
 
DevAssistant, Docker and You
DevAssistant, Docker and YouDevAssistant, Docker and You
DevAssistant, Docker and You
 
Django and Docker
Django and DockerDjango and Docker
Django and Docker
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken Cochrane
 
Up & Running with Docker
Up & Running with DockerUp & Running with Docker
Up & Running with Docker
 
Cicd.pdf
Cicd.pdfCicd.pdf
Cicd.pdf
 
Evotalks Docker Presentation
Evotalks Docker PresentationEvotalks Docker Presentation
Evotalks Docker Presentation
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOS
 
Habitat Workshop at Velocity London 2017
Habitat Workshop at Velocity London 2017Habitat Workshop at Velocity London 2017
Habitat Workshop at Velocity London 2017
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for Development
 

Último

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
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.pdfsudhanshuwaghmare1
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 

Último (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

Arnaud Porterie - Using Machine & Docker to develop & build Docker

  • 1. Using Machine & Docker to develop & build Docker Arnaud Porterie - @icecrime - 2015-05-13 - Paris @D2SI
  • 2. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Who am I? • Arnaud Porterie • @icecrime on and • Joined Docker in Nov 2014 (previously in Paris) • Project org: core maintainer • Company org: engineering manager for Engine
  • 3. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Who am I? • Arnaud Porterie • @icecrime on and • Joined Docker in Nov 2014 (previously in Paris) • Project org: core maintainer • Company org: engineering manager for Engine
  • 4. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Core maintainers • Have write-access to the repo • Are able to “LGTM” • Review the 100+ PR we receive each week • Don’t get to commit directly to master neither!
  • 5. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Core maintainers Maintainers Docker Inc. Docker Inc.
 sponsored maintainers
  • 6. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Core maintainers Maintainers Docker Google Microsoft RedHatIBM …
  • 7. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Docker platform overview Engine 
 
 Sw arm M achine C om pose K item atic distribution libcontainer libnetwork
  • 8. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Docker platform overview Component GitHub Contributors Stats Engine docker/docker 928 Compose docker/compose 86 Machine docker/machine 62 Swarm docker/swarm 64 Kitematic kitematic/kitematic 18
  • 9. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI That being said…
  • 10. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI What do we want to do? • Start from a “clean” Mac (with docker client, git, …) • Set up a development Linux VM • Get and build the docker/docker repository • See how we use Docker all along the way
  • 11. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Setting up a Linux host • Today, the Docker daemon is Linux only • The client runs natively on OSX and Windows • The daemon is being ported to Windows Server • We need a Linux with Docker to develop on Docker
  • 12. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Introducing Machine • The easiest way to provision a Linux host with Docker installed • https://github.com/docker/machine Machine lets you create Docker hosts on your computer, on cloud providers, and inside your own data center. It creates servers, installs Docker on them, then configures the Docker client to talk to them.
  • 13. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Demo: using machine
  • 14. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Docker Engine source tree • Client and daemon are the same binary • Dependencies are vendored • Commodity Makefile $ git clone https://github.com/docker/docker
  • 15. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Demo: a peek at the source
  • 16. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Docker’s Dockerfile • Yes, there’s a Dockerfile in the docker repo
  • 17. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Docker’s Dockerfile
  • 18. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Docker’s Dockerfile • Describes the Docker development environment • System dependencies • Golang packages • …
  • 19. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Demo: docker build
  • 20. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Why it matters • From 0 to a working dev env in minutes • No need to know versions of Go & dependencies • No need to install anything on my host • Consistency across all developers • Also it’s Docker, so it can do everything Docker can
  • 21. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI If I already have a Dockerfile • Don’t mix deployment image with dev image • Dev dependencies != runtime dependencies • You can have multiple Dockerfiles since 1.5.0 $ ls Dockerfile* Dockerfile Dockerfile.dev $ docker build -f Dockerfile.dev -t dev .
  • 22. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Development flow • Sources are baked in the image • Need to rebuild every time something changes • Alternative: rely on bind mounts • On Mac /Users/ happens to be shared by default # Upload docker source COPY . /go/src/github.com/docker/docker
  • 23. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Demo: editing from the host
  • 24. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Parallelizing work • When your dev env is a Docker image, it’s easy to spawn many of them • For different projects • For different branches • On different hosts • …
  • 25. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Example: working with branches • Build an image per branch • Run a container for each • Rely on docker attach and ^P^Q
  • 26. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Demo: working with branches
  • 27. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Key points • A new dev is operational in minutes • It’s “just” a Docker image: different dev will choose to run it differently, and on different hosts • It’s “just” containers: spawn as many as needed • What works for Docker can probably work for you!
  • 28. Arnaud Porterie - @icecrime - 2015-05-13 Docker Paris @D2SI Thanks! Questions?