The document discusses Docker's platform and ecosystem, which has grown significantly over 19 months to include over 640 contributors, 2.75 million downloads, and extensive community support and documentation. It also outlines the key components of Docker's platform, including the Docker Engine for building, shipping, and running containers, and Docker Hub for sharing images. Finally, it provides examples of how to use Docker to build, run, and manage applications and services across infrastructure.
Gen AI in Business - Global Trends Report 2024.pdf
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
1.
2. 19 Months Later: An Incredible Platform and Ecosystem
Community
640+ Contributors 250+ Meetups on Docker
2.75M Downloads 6.7K Projects on GitHub
Official Repos & 14K+ Dockerized Apps
Support
Enterprise Support
Robust Documentation
Implementation, Integration, Training
Network of Partners
The Docker Platform
!
Docker Engine
Docker Hub
!
Build, Ship, and Run
Partners
Content
Users
3. 60+ People and a Turtle
Now up to
60+ people
(and our pet
turtle, Gordon)
4. …to Build, Ship, and Run
Docker Hub
Build Ship
Run
Source
Dev
QA
Staging
Linux OS
Doocckkeerr
Linux OS
Linux OS
Doocckkeerr
Infrastructure Management
Physical
Infrastructure Management
Virtual
Cloud
Source Code
Repository
DockerFile
Docker
Boot2Docker
Linux OS
Doocckkeerr
TEST TEST
TEST TEST
TEST
GCE RAX IBM
Mac/Win Dev
Machine
Analytics
DB
Prod Machine
Doocckkeerr
++
Users Collab
Provenance Policy
Registries
Public Curated Private
Docker Hub API
Third Party Tools
Prod Machine
Prod Machine
VM
DoDcokcekrer
VM
DoDcokcekrer
VM
DoDcokcekrer
QA Machine
5.
6.
7.
8.
9.
10.
11. Deploy services
reliably & consistently
• If it works locally, it will work on the server
• With exactly the same behavior
• Regardless of versions
• Regardless of distros
• Regardless of dependencies
14. Traditional Containerized
Hardware
VM (n)
Hardware
process (n)
process (n)
Hardware
VM (n)
Hardware
"contained"
process (n)
"contained"
process (n) process (n)
"contained"
process (n)
18. a security product?
• Docker Engine can be used as a security product.
• It provides a wrapper around processes
• Provides a path toward attestation of arbitrary
processes (Trusted Compute)
• You can use VMs to wrap containers
(and you can use containers inside of VMs)
19. Dockerized Host
syslogd nginx backup-agent sshd
golden image:
FROM ubuntu
RUN apt-get install
rsyslog
nginx
amanda
opensshd
20. Dockerized Host
syslogd nginx backup-agent sshd
syslog image:
FROM ubuntu
RUN apt-get install rsyslog
nginx image:
FROM fedora:f20
RUN yum install nginx
backup-agent image:
FROM ubuntu
RUN apt-get install amanda
sshd image:
FROM debian
RUN apt-get install opensshd
21. Do it!
‣ Build an image"
‣ Run it locally
‣ Push it to a registry (public or private)
‣ Run it (automatically!) in CI/CD and staging
‣ Run it in production
27. Anatomy of a
chef-container run:
Image
Linux
Docker Initiates Creates Container
Chef
Chef
Runs
Configures
Build Creates
Runs
Chef
Configures
Stage 1
Stage 2
28. Do it!
‣ Build an image
‣ Run it locally
‣ Push it to a registry (public or private)
‣ Run it (automatically!) in CI/CD and staging
‣ Run it in production
31. Do it!
‣ Build an image
‣ Run it locally
‣ Push it to a registry (public or private)"
‣ Run it (automatically!) in CI/CD and staging
‣ Run it in production
33. Do it!
‣ Build an image
‣ Run it locally
‣ Push it to a registry (public or private)
‣ Run it (automatically!) in CI/CD and staging
‣ Run it in production
37. $ ls
Dockerfile fig.yml src
$ docker run —privileged -v .:/opt/figapp
ewindisch/figleaf
$ echo $?
Legend:
—privileged = run “uncontained”. A permissive “firewall”, if you will.
-v = provide volume or bind-mount filesystem into container
38. Do it!
‣ Build an image
‣ Run it locally
‣ Push it to a registry (public or private)
‣ Run it (automatically!) in CI/CD and staging
‣ Run it in production
39. $ docker run -t -i
—rm=false
—restart=“on-failure[:5]”
busybox
Legend:
—restart=Restart policy on exit (no, on-failure[:max-retry], always)
48. • By default the Docker daemon listens on
unix:///var/run/docker.sock
• Can listen on a TCP socket with TLS 1.0+
Plain-text also possible, but do not use it!
(enabled by default with boot2docker)
• Used by various community tools:
fig, vagrant, ansible, etc.
50. Containers
• List containers
• Create a
container
• Inspect a
container
• List processes
running inside a
container
• Get container
logs
• Inspect
changes on a
container's
filesystem
• Export a
container
• Resize a
container TTY
• Start a
container
• Stop a
container
• Restart a
container
• Kill a container
• Pause a
container
• Unpause a
container
• Attach to a
container
• Wait a container
• Remove a
container
• Copy files or
folders from a
container
!
!
51. Images
• List Images
• Create an image
• Inspect an image
• Get the history of an image
• Push an image on the registry
• Tag an image into a repository
• Remove an image
• Search images
52. Misc
• Build an image from Dockerfile
via stdin
• Check auth configuration
• Display system-wide
information
• Show the docker version
information
• Ping the docker server
• Create a new image from a
container's changes
• Monitor Docker's events
• Get a tarball containing all
images in a repository
• Get a tarball containing all
images.
• Load a tarball with a set of
images and tags into docker
• Image tarball format
• Exec Create
• Exec Start
• Exec Resize