SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
DEVOPS INDONESIA
1
DEVOPS INDONESIA
Jakarta, 20 August 2019
DevOps Community in Indonesia
Docker, What’s next?
DEVOPS INDONESIA
2
DevSecOps enthusiasts
Self proclaimed runner
4+ experience of DevOps in
banking industry
$rfebriya
Riza F. Ariyanto
DEVOPS INDONESIA
3
Background
DEVOPS INDONESIA
4
Still Background
DEVOPS INDONESIA
5
Docker
• 3.5 million applications have been placed in containers using Docker technology
• 37 billion containerized applications have been downloaded.
• 451 Research also sees Docker technology being wildly successful
• Annual revenue is expected to increase by 4x, growing from $749 million in 2016 to
more than $3.4 billion by 2021
DEVOPS INDONESIA
6
Docker
• A container image format
• A method for building container images (Dockerfile/docker build)
• A way to manage container images (docker images, docker rmi, etc.)
• A way to manage instances of containers (docker ps, docker rm, etc.)
• A way to share container images (docker push/pull)
• A way to run containers (docker run)
DEVOPS INDONESIA
7
Moby
Source: Solomon Hykes @solomonstre
DEVOPS INDONESIA
Moby
https://github.com/moby/moby
https://github.com/docker/cli
DEVOPS INDONESIA
9
The History of Containers
2008:
KERNEL & USER
NAMESPACES
2008:
LINUX
CONTAINER
PROJECT (LXC)
2013:
DOTCLOUD
BECOMES
DOCKER
2013:
RED HAT
ENTERPRISE
LINUX
2000
2010
2005
2000:
JAILS ADDED
TO FREEBSD
2006:
PROCESS
CONFINEMENT
2007:
GPC RENAMED
CGROUPS
2014:
GOOGLE
KUBERNETES
2001:
LINUX -VSERVER
PROJECT
2003:
SELINUX
ADDED TO LINUX
MAINLINE
2005:
FULL RELEASE
OF SOLARIS
ZONES
2013:
DOTCLOUD PYCON
LIGHTNING TALK
1979:
CHROOT
SYSCALL ADDED
1979
DEVOPS INDONESIA
10
Container
Important corrections
● Containers do not run ON docker.
Containers are processes - they
run on the Linux kernel.
Containers are Linux.
● The docker daemon is one of the
many user space tools/libraries
that talks to the kernel to set up
containers
DEVOPS INDONESIA
11
Container Engine
1. Provide API/User Interface
○ We really want to use a simple API and/or command line tool. That’s how the docker
command line interface and API were developed.
2. Pulling/Expanding images to disk
○ The container engine has to pull the images to a local cache.
○ Extracting the image layers to disk when a container is created.
3. Building a config.json
○ Container engine is responsible for creating a config.json and passing it to runc.
DEVOPS INDONESIA
Container Runtime
● Consuming the container mount point provided by the Container Engine
● Consuming the container metadata (config.json) provided by the Container
Engine
● Communicating with the kernel to start containerized processes (clone
system call)
● Setting up cgroups
● Setting up SELinux Policy
● Setting up App Armor rules
DEVOPS INDONESIA
You guys should read this
https://www.ianlewis.org/en/container-runtimes-part-1-introduction-container-r
DEVOPS INDONESIA
So what is actually Docker?
Source:https://www.aquasec.com/wiki/display/containers/Docker+Architecture
DEVOPS INDONESIA
So what is actually Docker nowadays?
● Docker contributed that libary to
the OCI standards body as a
reference implementation called
runc.
● runC is a lightweight tool that
does one thing and does it well: it
runs a container.
● Containerd is a simple daemon
that uses runC to manage
containers and exposes
● Docker Engine exposes not only
containers, but also images,
volumes, networks, builds, etc.
using a full-blown HTTP API
DEVOPS INDONESIA
Is not Finished
2017:
Moby project
Announced
2018:
CRI-O is GA and
powers OpenShfit
Online
2017
2016
2018
2015:
Tectonic
Announced
2016:
Docker engine
1.12 adds swarm
2016:
CRI-O project
launched under
the name OCID
2017:
Buildah released
and ships in RHEL
2018:
Podman released
and ships in RHEL
2017:
Kata merges
Clear & RunV
projects
2017:
Docker includes
the new
containerd
2016:
Containerd
project launched
2017:
V1.0 of image &
runtime spec
2018:
V1.0 of
distribution spec
2016:
Skopeo project
launched under
the name OCID
2015
2015:
RED HAT
CONTAINER
PLATFORM 3.0
2015:
STANDARDS VIA
OCI AND CNCF
DEVOPS INDONESIA
18
Standardise Container
• The goal of the OCI is to avoid a
“balkanization” of the container ecosystem,
and ensure that containers built with one
engine can run on another
• Runtime spec (runc = Reference
implementation)
• Image Spec
• Distribution Spec
DEVOPS INDONESIA
19
Use API/Interfaces to Container Runtimes
DEVOPS INDONESIA
21
How a container gets created in a Kubernetes environment
At a high level, conceptually here is what is happening:
Orchestration API -> Container Engine API -> Kernel API
Digging one level deeper:
Kubernetes Master -> Kubelet -> Docker Engine -> containerd
-> runc -> Linux kernel
DEVOPS INDONESIA
22
Next
In OpenShift 4 they are moving to this architecture:
Kubernetes Master -> Kubelet -> CRI-O -> runc -> Linux kernel
In the coming months, theoretically, some Kubernetes deployments could like this, with
containerd:
Kubernetes Master -> Kubelet -> containerd -> runc -> Linux
kernel
DEVOPS INDONESIA
Does It Matter?
CRI-O vs Containerd?
Which one should we use?
DEVOPS INDONESIA
Does It Matter?
DEVOPS INDONESIA
25
Docker alternative
• A method for building container images (Dockerfile/docker build)
• A way to manage container images (docker images, docker rmi , etc.)
• A way to manage instances of containers (docker ps, docker rm , etc.)
• A way to share container images (docker push/pull)
• A way to run containers (docker run)
DEVOPS INDONESIA
26
CRI-O
DEVOPS INDONESIA
27
CRI-O
Open source & Open governance
Lean, Stable, Secure and BORING!
● Tied to the CRI
● Shaped around Kubernetes
● Only supported user is Kubernetes
● Versioning and Support are tied to
Kubernetes
DEVOPS INDONESIA
28
Podman
DEVOPS INDONESIA
29
Podman
Library (libpod) and CLI (podman) for
managing OCI-based Pods, Containers, and
Container Images
• Replacement for docker cli (known CLI)
• Integrated with CRI-O
• No daemon running
DEVOPS INDONESIA
30
Demo Podman
$ docker images
$ sudo systemctl stop docker
$ podman images
$ podman run -it -d --rm -p 8080:80 nginx
$ curl http://localhost:8080
$ podman ps
$ podman logs <CONTAINER_ID>
$ podman exec -t <CONTAINER_ID> ls /etc/nginx
$ podman images
$ podman run -t fedora echo "Hello Riza"
$ podman ps -a
DEVOPS INDONESIA
31
Skopeo
• Copy images from/to (multiple
transports/storages)
• Inspect images
• Delete an image from a repository
• Standalone binary / No daemon running
• Perfect for pipelines (e.g. Jenkins)
DEVOPS INDONESIA
Demo Skopeo
COPY IMAGE
$ skopeo copy docker://busybox:latest docker-daemon:riza/busybox:200819
$ skopeo copy docker://busybox:latest docker://rfebriya/busybox:200819
$ docker images
$ docker run -it --rm -d riza/busybox:200819
$ docker ps -a
$ docker rm $(docker ps -qa)
$ skopeo inspect docker://busybox:latest
DEVOPS INDONESIA
33
Buildah
• Build images
• No daemon running
• shell-like syntax
• Build from Dockerfile(s)
DEVOPS INDONESIA
34
Demo Buildah
$ container=$(buildah from fedora)
$ buildah containers
$ buildah config --author "rfebriya" --label "METADATA=Built with buildah"
$container
$ buildah inspect $container
$ buildah run $container sh
# echo “Hello Riza, built by Buildah” > /hello
# ls /
# cat /hello
# exit
$ buildah commit $container riza/example-buildah
$ podman run -it riza/example-buildah cat /hello
$ buildah bud -t riza/example-buildah-dockerfile:200819 -f 200819/Dockerfile .
$ podman run -it riza/example-buildah-dockerfile:200819 cat /hello
DEVOPS INDONESIA
35
Dockerless
Consume a Dockerfile, but build image without a docker daemon
Pros:
• Docker build-like experience (just write a Dockerfile)
• Less configuration
• Docker image best practices can be codified into tools
Cons:
• Dockerfile fidelity might make difficult some use cases
• Different approaches to image layer construction; Very fragmented across vendors,
no real standard
DEVOPS INDONESIA
Conclusion
1. Docker still provides nice end-to-end experience when it comes to containers
especially for developers
2. Docker engine doesn’t move at the same speed as Kubernetes. It’s on a totally
different lifecycle (same with containerd). This makes it difficult to add features
in the engine to support the Kubelet.
3. There’s some alternatives out there beside the Docker and it’s still far from
finished yet.
DEVOPS INDONESIA
37
THANK YOU !
Quote by Steve

Más contenido relacionado

La actualidad más candente

Docker Online Meetup: Announcing Docker CE + EE
Docker Online Meetup: Announcing Docker CE + EEDocker Online Meetup: Announcing Docker CE + EE
Docker Online Meetup: Announcing Docker CE + EEDocker, Inc.
 
DCSF19 CMD and Conquer: Containerizing the Monolith
DCSF19 CMD and Conquer: Containerizing the Monolith  DCSF19 CMD and Conquer: Containerizing the Monolith
DCSF19 CMD and Conquer: Containerizing the Monolith Docker, Inc.
 
Docker, the Future of Distributed Applications | Docker Tour de France 2014
Docker, the Future of Distributed Applications | Docker Tour de France 2014Docker, the Future of Distributed Applications | Docker Tour de France 2014
Docker, the Future of Distributed Applications | Docker Tour de France 2014Julien Barbier
 
Docker in Production, Look No Hands! by Scott Coulton
Docker in Production, Look No Hands! by Scott CoultonDocker in Production, Look No Hands! by Scott Coulton
Docker in Production, Look No Hands! by Scott CoultonDocker, Inc.
 
DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1Docker, Inc.
 
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.
 
DCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been ToldDCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been ToldDocker, Inc.
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of dockerJohn Zaccone
 
Why I wish I'd Heard of Docker when I was 12 - Finnian Anderson
Why I wish I'd Heard of Docker when I was 12 - Finnian AndersonWhy I wish I'd Heard of Docker when I was 12 - Finnian Anderson
Why I wish I'd Heard of Docker when I was 12 - Finnian AndersonDocker, Inc.
 
Docker to the Rescue of an Ops Team
Docker to the Rescue of an Ops TeamDocker to the Rescue of an Ops Team
Docker to the Rescue of an Ops TeamRachid Zarouali
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT CampusAjeet Singh Raina
 
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!Docker, Inc.
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 
Docker crash course
Docker crash courseDocker crash course
Docker crash courseVishwas N
 
My Journey to Becoming a Docker Captain
My Journey to Becoming a Docker CaptainMy Journey to Becoming a Docker Captain
My Journey to Becoming a Docker CaptainAjeet Singh Raina
 
DCSF19 How Docker Simplifies Kubernetes for the Masses
DCSF19 How Docker Simplifies Kubernetes for the Masses  DCSF19 How Docker Simplifies Kubernetes for the Masses
DCSF19 How Docker Simplifies Kubernetes for the Masses Docker, Inc.
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2Docker, Inc.
 
Docker Roadshow 2016
Docker Roadshow 2016Docker Roadshow 2016
Docker Roadshow 2016Docker, Inc.
 

La actualidad más candente (20)

Docker Online Meetup: Announcing Docker CE + EE
Docker Online Meetup: Announcing Docker CE + EEDocker Online Meetup: Announcing Docker CE + EE
Docker Online Meetup: Announcing Docker CE + EE
 
DCSF19 CMD and Conquer: Containerizing the Monolith
DCSF19 CMD and Conquer: Containerizing the Monolith  DCSF19 CMD and Conquer: Containerizing the Monolith
DCSF19 CMD and Conquer: Containerizing the Monolith
 
Docker, the Future of Distributed Applications | Docker Tour de France 2014
Docker, the Future of Distributed Applications | Docker Tour de France 2014Docker, the Future of Distributed Applications | Docker Tour de France 2014
Docker, the Future of Distributed Applications | Docker Tour de France 2014
 
Docker in Production, Look No Hands! by Scott Coulton
Docker in Production, Look No Hands! by Scott CoultonDocker in Production, Look No Hands! by Scott Coulton
Docker in Production, Look No Hands! by Scott Coulton
 
DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
 
DCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been ToldDCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been Told
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of docker
 
Why I wish I'd Heard of Docker when I was 12 - Finnian Anderson
Why I wish I'd Heard of Docker when I was 12 - Finnian AndersonWhy I wish I'd Heard of Docker when I was 12 - Finnian Anderson
Why I wish I'd Heard of Docker when I was 12 - Finnian Anderson
 
Docker to the Rescue of an Ops Team
Docker to the Rescue of an Ops TeamDocker to the Rescue of an Ops Team
Docker to the Rescue of an Ops Team
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
Docker crash course
Docker crash courseDocker crash course
Docker crash course
 
My Journey to Becoming a Docker Captain
My Journey to Becoming a Docker CaptainMy Journey to Becoming a Docker Captain
My Journey to Becoming a Docker Captain
 
DCSF19 How Docker Simplifies Kubernetes for the Masses
DCSF19 How Docker Simplifies Kubernetes for the Masses  DCSF19 How Docker Simplifies Kubernetes for the Masses
DCSF19 How Docker Simplifies Kubernetes for the Masses
 
Dockercon 2018 EU Updates
Dockercon 2018 EU Updates Dockercon 2018 EU Updates
Dockercon 2018 EU Updates
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
Docker Roadshow 2016
Docker Roadshow 2016Docker Roadshow 2016
Docker Roadshow 2016
 

Similar a Docker, what's next ?

Dockercon EU 2014
Dockercon EU 2014Dockercon EU 2014
Dockercon EU 2014Rafe Colton
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...Docker, Inc.
 
DevOps Indonesia #5 - The Future of Containers
DevOps Indonesia #5 - The Future of ContainersDevOps Indonesia #5 - The Future of Containers
DevOps Indonesia #5 - The Future of ContainersDevOps Indonesia
 
Build and run applications in a dockerless kubernetes world
Build and run applications in a dockerless kubernetes worldBuild and run applications in a dockerless kubernetes world
Build and run applications in a dockerless kubernetes worldJorge Morales
 
Package your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesPackage your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesArun Gupta
 
Docker puebla bday #4 celebration
Docker puebla bday #4 celebrationDocker puebla bday #4 celebration
Docker puebla bday #4 celebrationRamon Morales
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDocker, Inc.
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with DockerGeeta Vinnakota
 
Containers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioContainers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioAraf Karsh Hamid
 
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
 
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
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with dockerMichelle Liu
 

Similar a Docker, what's next ? (20)

Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Dockercon EU 2014
Dockercon EU 2014Dockercon EU 2014
Dockercon EU 2014
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
 
DevOps Indonesia #5 - The Future of Containers
DevOps Indonesia #5 - The Future of ContainersDevOps Indonesia #5 - The Future of Containers
DevOps Indonesia #5 - The Future of Containers
 
Devops indonesia - The Future Container
Devops indonesia - The Future ContainerDevops indonesia - The Future Container
Devops indonesia - The Future Container
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Build and run applications in a dockerless kubernetes world
Build and run applications in a dockerless kubernetes worldBuild and run applications in a dockerless kubernetes world
Build and run applications in a dockerless kubernetes world
 
Package your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesPackage your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and Kubernetes
 
Docker puebla bday #4 celebration
Docker puebla bday #4 celebrationDocker puebla bday #4 celebration
Docker puebla bday #4 celebration
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
 
Docker
DockerDocker
Docker
 
Containers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioContainers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes Istio
 
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
 
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
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with docker
 
Docker lxc win
Docker lxc winDocker lxc win
Docker lxc win
 

Más de DevOps Indonesia

DevSecOps Implementation Journey
DevSecOps Implementation JourneyDevSecOps Implementation Journey
DevSecOps Implementation JourneyDevOps Indonesia
 
DevOps Indonesia X Palo Alto and Dkatalis Roadshow to DevOpsDays Jakarta 2022
DevOps Indonesia X Palo Alto and Dkatalis Roadshow to DevOpsDays Jakarta 2022DevOps Indonesia X Palo Alto and Dkatalis Roadshow to DevOpsDays Jakarta 2022
DevOps Indonesia X Palo Alto and Dkatalis Roadshow to DevOpsDays Jakarta 2022DevOps Indonesia
 
Securing an NGINX deployment for K8s
Securing an NGINX deployment for K8sSecuring an NGINX deployment for K8s
Securing an NGINX deployment for K8sDevOps Indonesia
 
Observability in highly distributed systems
Observability in highly distributed systemsObservability in highly distributed systems
Observability in highly distributed systemsDevOps Indonesia
 
DevOps Indonesia Meetup #52 - announcement
DevOps Indonesia Meetup #52 - announcementDevOps Indonesia Meetup #52 - announcement
DevOps Indonesia Meetup #52 - announcementDevOps Indonesia
 
Dev ops meetup 51 : Securing DevOps Lifecycle - Announcement
Dev ops meetup 51 : Securing DevOps Lifecycle - AnnouncementDev ops meetup 51 : Securing DevOps Lifecycle - Announcement
Dev ops meetup 51 : Securing DevOps Lifecycle - AnnouncementDevOps Indonesia
 
DevOps Meetup 50 : Securing your Application - Announcement
DevOps Meetup 50 : Securing your Application - AnnouncementDevOps Meetup 50 : Securing your Application - Announcement
DevOps Meetup 50 : Securing your Application - AnnouncementDevOps Indonesia
 
Secure your Application with Google cloud armor
Secure your Application with Google cloud armorSecure your Application with Google cloud armor
Secure your Application with Google cloud armorDevOps Indonesia
 
DevOps Meetup 49 Aws Copilot and Gitops - announcement by DevOps Indonesia
DevOps Meetup 49  Aws Copilot and Gitops - announcement by DevOps IndonesiaDevOps Meetup 49  Aws Copilot and Gitops - announcement by DevOps Indonesia
DevOps Meetup 49 Aws Copilot and Gitops - announcement by DevOps IndonesiaDevOps Indonesia
 
Operate Containers with AWS Copilot
Operate Containers with AWS CopilotOperate Containers with AWS Copilot
Operate Containers with AWS CopilotDevOps Indonesia
 
Continuously Deploy Your CDK Application by Petra novandi barus
Continuously  Deploy Your CDK Application by Petra novandi barusContinuously  Deploy Your CDK Application by Petra novandi barus
Continuously Deploy Your CDK Application by Petra novandi barusDevOps Indonesia
 
DevOps indonesia (online) meetup 46 aws with payfazz in devops indonesia - a...
DevOps indonesia (online) meetup 46  aws with payfazz in devops indonesia - a...DevOps indonesia (online) meetup 46  aws with payfazz in devops indonesia - a...
DevOps indonesia (online) meetup 46 aws with payfazz in devops indonesia - a...DevOps Indonesia
 
Securing Your Database Dynamic DB Credentials
Securing Your Database  Dynamic DB CredentialsSecuring Your Database  Dynamic DB Credentials
Securing Your Database Dynamic DB CredentialsDevOps Indonesia
 
DevOps Indonesia (online) meetup 45 - Announcement
DevOps Indonesia (online) meetup 45 - AnnouncementDevOps Indonesia (online) meetup 45 - Announcement
DevOps Indonesia (online) meetup 45 - AnnouncementDevOps Indonesia
 
The Death and Rise of Enterprise DevOps
The Death and Rise of Enterprise DevOpsThe Death and Rise of Enterprise DevOps
The Death and Rise of Enterprise DevOpsDevOps Indonesia
 
API Security Webinar - Credential Stuffing
API Security Webinar - Credential StuffingAPI Security Webinar - Credential Stuffing
API Security Webinar - Credential StuffingDevOps Indonesia
 
API Security Webinar - Security Guidelines for Providing and Consuming APIs
API Security Webinar - Security Guidelines for Providing and Consuming APIsAPI Security Webinar - Security Guidelines for Providing and Consuming APIs
API Security Webinar - Security Guidelines for Providing and Consuming APIsDevOps Indonesia
 
API Security Webinar - Hendra Tanto
API Security Webinar - Hendra TantoAPI Security Webinar - Hendra Tanto
API Security Webinar - Hendra TantoDevOps Indonesia
 
API Security Webinar : Credential Stuffing
API Security Webinar : Credential StuffingAPI Security Webinar : Credential Stuffing
API Security Webinar : Credential StuffingDevOps Indonesia
 

Más de DevOps Indonesia (20)

DevSecOps Implementation Journey
DevSecOps Implementation JourneyDevSecOps Implementation Journey
DevSecOps Implementation Journey
 
DevOps Indonesia X Palo Alto and Dkatalis Roadshow to DevOpsDays Jakarta 2022
DevOps Indonesia X Palo Alto and Dkatalis Roadshow to DevOpsDays Jakarta 2022DevOps Indonesia X Palo Alto and Dkatalis Roadshow to DevOpsDays Jakarta 2022
DevOps Indonesia X Palo Alto and Dkatalis Roadshow to DevOpsDays Jakarta 2022
 
Securing an NGINX deployment for K8s
Securing an NGINX deployment for K8sSecuring an NGINX deployment for K8s
Securing an NGINX deployment for K8s
 
Observability in highly distributed systems
Observability in highly distributed systemsObservability in highly distributed systems
Observability in highly distributed systems
 
DevOps Indonesia Meetup #52 - announcement
DevOps Indonesia Meetup #52 - announcementDevOps Indonesia Meetup #52 - announcement
DevOps Indonesia Meetup #52 - announcement
 
Dev ops meetup 51 : Securing DevOps Lifecycle - Announcement
Dev ops meetup 51 : Securing DevOps Lifecycle - AnnouncementDev ops meetup 51 : Securing DevOps Lifecycle - Announcement
Dev ops meetup 51 : Securing DevOps Lifecycle - Announcement
 
Securing DevOps Lifecycle
Securing DevOps LifecycleSecuring DevOps Lifecycle
Securing DevOps Lifecycle
 
DevOps Meetup 50 : Securing your Application - Announcement
DevOps Meetup 50 : Securing your Application - AnnouncementDevOps Meetup 50 : Securing your Application - Announcement
DevOps Meetup 50 : Securing your Application - Announcement
 
Secure your Application with Google cloud armor
Secure your Application with Google cloud armorSecure your Application with Google cloud armor
Secure your Application with Google cloud armor
 
DevOps Meetup 49 Aws Copilot and Gitops - announcement by DevOps Indonesia
DevOps Meetup 49  Aws Copilot and Gitops - announcement by DevOps IndonesiaDevOps Meetup 49  Aws Copilot and Gitops - announcement by DevOps Indonesia
DevOps Meetup 49 Aws Copilot and Gitops - announcement by DevOps Indonesia
 
Operate Containers with AWS Copilot
Operate Containers with AWS CopilotOperate Containers with AWS Copilot
Operate Containers with AWS Copilot
 
Continuously Deploy Your CDK Application by Petra novandi barus
Continuously  Deploy Your CDK Application by Petra novandi barusContinuously  Deploy Your CDK Application by Petra novandi barus
Continuously Deploy Your CDK Application by Petra novandi barus
 
DevOps indonesia (online) meetup 46 aws with payfazz in devops indonesia - a...
DevOps indonesia (online) meetup 46  aws with payfazz in devops indonesia - a...DevOps indonesia (online) meetup 46  aws with payfazz in devops indonesia - a...
DevOps indonesia (online) meetup 46 aws with payfazz in devops indonesia - a...
 
Securing Your Database Dynamic DB Credentials
Securing Your Database  Dynamic DB CredentialsSecuring Your Database  Dynamic DB Credentials
Securing Your Database Dynamic DB Credentials
 
DevOps Indonesia (online) meetup 45 - Announcement
DevOps Indonesia (online) meetup 45 - AnnouncementDevOps Indonesia (online) meetup 45 - Announcement
DevOps Indonesia (online) meetup 45 - Announcement
 
The Death and Rise of Enterprise DevOps
The Death and Rise of Enterprise DevOpsThe Death and Rise of Enterprise DevOps
The Death and Rise of Enterprise DevOps
 
API Security Webinar - Credential Stuffing
API Security Webinar - Credential StuffingAPI Security Webinar - Credential Stuffing
API Security Webinar - Credential Stuffing
 
API Security Webinar - Security Guidelines for Providing and Consuming APIs
API Security Webinar - Security Guidelines for Providing and Consuming APIsAPI Security Webinar - Security Guidelines for Providing and Consuming APIs
API Security Webinar - Security Guidelines for Providing and Consuming APIs
 
API Security Webinar - Hendra Tanto
API Security Webinar - Hendra TantoAPI Security Webinar - Hendra Tanto
API Security Webinar - Hendra Tanto
 
API Security Webinar : Credential Stuffing
API Security Webinar : Credential StuffingAPI Security Webinar : Credential Stuffing
API Security Webinar : Credential Stuffing
 

Último

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 

Último (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 

Docker, what's next ?

  • 1. DEVOPS INDONESIA 1 DEVOPS INDONESIA Jakarta, 20 August 2019 DevOps Community in Indonesia Docker, What’s next?
  • 2. DEVOPS INDONESIA 2 DevSecOps enthusiasts Self proclaimed runner 4+ experience of DevOps in banking industry $rfebriya Riza F. Ariyanto
  • 5. DEVOPS INDONESIA 5 Docker • 3.5 million applications have been placed in containers using Docker technology • 37 billion containerized applications have been downloaded. • 451 Research also sees Docker technology being wildly successful • Annual revenue is expected to increase by 4x, growing from $749 million in 2016 to more than $3.4 billion by 2021
  • 6. DEVOPS INDONESIA 6 Docker • A container image format • A method for building container images (Dockerfile/docker build) • A way to manage container images (docker images, docker rmi, etc.) • A way to manage instances of containers (docker ps, docker rm, etc.) • A way to share container images (docker push/pull) • A way to run containers (docker run)
  • 9. DEVOPS INDONESIA 9 The History of Containers 2008: KERNEL & USER NAMESPACES 2008: LINUX CONTAINER PROJECT (LXC) 2013: DOTCLOUD BECOMES DOCKER 2013: RED HAT ENTERPRISE LINUX 2000 2010 2005 2000: JAILS ADDED TO FREEBSD 2006: PROCESS CONFINEMENT 2007: GPC RENAMED CGROUPS 2014: GOOGLE KUBERNETES 2001: LINUX -VSERVER PROJECT 2003: SELINUX ADDED TO LINUX MAINLINE 2005: FULL RELEASE OF SOLARIS ZONES 2013: DOTCLOUD PYCON LIGHTNING TALK 1979: CHROOT SYSCALL ADDED 1979
  • 10. DEVOPS INDONESIA 10 Container Important corrections ● Containers do not run ON docker. Containers are processes - they run on the Linux kernel. Containers are Linux. ● The docker daemon is one of the many user space tools/libraries that talks to the kernel to set up containers
  • 11. DEVOPS INDONESIA 11 Container Engine 1. Provide API/User Interface ○ We really want to use a simple API and/or command line tool. That’s how the docker command line interface and API were developed. 2. Pulling/Expanding images to disk ○ The container engine has to pull the images to a local cache. ○ Extracting the image layers to disk when a container is created. 3. Building a config.json ○ Container engine is responsible for creating a config.json and passing it to runc.
  • 12. DEVOPS INDONESIA Container Runtime ● Consuming the container mount point provided by the Container Engine ● Consuming the container metadata (config.json) provided by the Container Engine ● Communicating with the kernel to start containerized processes (clone system call) ● Setting up cgroups ● Setting up SELinux Policy ● Setting up App Armor rules
  • 13. DEVOPS INDONESIA You guys should read this https://www.ianlewis.org/en/container-runtimes-part-1-introduction-container-r
  • 14. DEVOPS INDONESIA So what is actually Docker? Source:https://www.aquasec.com/wiki/display/containers/Docker+Architecture
  • 15. DEVOPS INDONESIA So what is actually Docker nowadays? ● Docker contributed that libary to the OCI standards body as a reference implementation called runc. ● runC is a lightweight tool that does one thing and does it well: it runs a container. ● Containerd is a simple daemon that uses runC to manage containers and exposes ● Docker Engine exposes not only containers, but also images, volumes, networks, builds, etc. using a full-blown HTTP API
  • 16. DEVOPS INDONESIA Is not Finished 2017: Moby project Announced 2018: CRI-O is GA and powers OpenShfit Online 2017 2016 2018 2015: Tectonic Announced 2016: Docker engine 1.12 adds swarm 2016: CRI-O project launched under the name OCID 2017: Buildah released and ships in RHEL 2018: Podman released and ships in RHEL 2017: Kata merges Clear & RunV projects 2017: Docker includes the new containerd 2016: Containerd project launched 2017: V1.0 of image & runtime spec 2018: V1.0 of distribution spec 2016: Skopeo project launched under the name OCID 2015 2015: RED HAT CONTAINER PLATFORM 3.0 2015: STANDARDS VIA OCI AND CNCF
  • 17. DEVOPS INDONESIA 18 Standardise Container • The goal of the OCI is to avoid a “balkanization” of the container ecosystem, and ensure that containers built with one engine can run on another • Runtime spec (runc = Reference implementation) • Image Spec • Distribution Spec
  • 18. DEVOPS INDONESIA 19 Use API/Interfaces to Container Runtimes
  • 19. DEVOPS INDONESIA 21 How a container gets created in a Kubernetes environment At a high level, conceptually here is what is happening: Orchestration API -> Container Engine API -> Kernel API Digging one level deeper: Kubernetes Master -> Kubelet -> Docker Engine -> containerd -> runc -> Linux kernel
  • 20. DEVOPS INDONESIA 22 Next In OpenShift 4 they are moving to this architecture: Kubernetes Master -> Kubelet -> CRI-O -> runc -> Linux kernel In the coming months, theoretically, some Kubernetes deployments could like this, with containerd: Kubernetes Master -> Kubelet -> containerd -> runc -> Linux kernel
  • 21. DEVOPS INDONESIA Does It Matter? CRI-O vs Containerd? Which one should we use?
  • 23. DEVOPS INDONESIA 25 Docker alternative • A method for building container images (Dockerfile/docker build) • A way to manage container images (docker images, docker rmi , etc.) • A way to manage instances of containers (docker ps, docker rm , etc.) • A way to share container images (docker push/pull) • A way to run containers (docker run)
  • 25. DEVOPS INDONESIA 27 CRI-O Open source & Open governance Lean, Stable, Secure and BORING! ● Tied to the CRI ● Shaped around Kubernetes ● Only supported user is Kubernetes ● Versioning and Support are tied to Kubernetes
  • 27. DEVOPS INDONESIA 29 Podman Library (libpod) and CLI (podman) for managing OCI-based Pods, Containers, and Container Images • Replacement for docker cli (known CLI) • Integrated with CRI-O • No daemon running
  • 28. DEVOPS INDONESIA 30 Demo Podman $ docker images $ sudo systemctl stop docker $ podman images $ podman run -it -d --rm -p 8080:80 nginx $ curl http://localhost:8080 $ podman ps $ podman logs <CONTAINER_ID> $ podman exec -t <CONTAINER_ID> ls /etc/nginx $ podman images $ podman run -t fedora echo "Hello Riza" $ podman ps -a
  • 29. DEVOPS INDONESIA 31 Skopeo • Copy images from/to (multiple transports/storages) • Inspect images • Delete an image from a repository • Standalone binary / No daemon running • Perfect for pipelines (e.g. Jenkins)
  • 30. DEVOPS INDONESIA Demo Skopeo COPY IMAGE $ skopeo copy docker://busybox:latest docker-daemon:riza/busybox:200819 $ skopeo copy docker://busybox:latest docker://rfebriya/busybox:200819 $ docker images $ docker run -it --rm -d riza/busybox:200819 $ docker ps -a $ docker rm $(docker ps -qa) $ skopeo inspect docker://busybox:latest
  • 31. DEVOPS INDONESIA 33 Buildah • Build images • No daemon running • shell-like syntax • Build from Dockerfile(s)
  • 32. DEVOPS INDONESIA 34 Demo Buildah $ container=$(buildah from fedora) $ buildah containers $ buildah config --author "rfebriya" --label "METADATA=Built with buildah" $container $ buildah inspect $container $ buildah run $container sh # echo “Hello Riza, built by Buildah” > /hello # ls / # cat /hello # exit $ buildah commit $container riza/example-buildah $ podman run -it riza/example-buildah cat /hello $ buildah bud -t riza/example-buildah-dockerfile:200819 -f 200819/Dockerfile . $ podman run -it riza/example-buildah-dockerfile:200819 cat /hello
  • 33. DEVOPS INDONESIA 35 Dockerless Consume a Dockerfile, but build image without a docker daemon Pros: • Docker build-like experience (just write a Dockerfile) • Less configuration • Docker image best practices can be codified into tools Cons: • Dockerfile fidelity might make difficult some use cases • Different approaches to image layer construction; Very fragmented across vendors, no real standard
  • 34. DEVOPS INDONESIA Conclusion 1. Docker still provides nice end-to-end experience when it comes to containers especially for developers 2. Docker engine doesn’t move at the same speed as Kubernetes. It’s on a totally different lifecycle (same with containerd). This makes it difficult to add features in the engine to support the Kubelet. 3. There’s some alternatives out there beside the Docker and it’s still far from finished yet.
  • 35. DEVOPS INDONESIA 37 THANK YOU ! Quote by Steve