+ All Categories
Home > Documents > Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on...

Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on...

Date post: 26-May-2018
Category:
Upload: phungnhu
View: 241 times
Download: 0 times
Share this document with a friend
47
BUILD AND DEPLOY MULTIARCH LINUX AND WINDOWS CONTAINER IMAGES STEFAN SCHERER @stefscherer
Transcript
Page 1: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

B U I L D A N D D E P L O Y M U LT I A R C H L I N U X A N D W I N D O W S C O N TA I N E R I M A G E SS T E FA N S C H E R E R @ s t e f s c h e r e r

Page 2: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Page 3: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

♥ ♥

Page 4: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

DockerjourneytoMultiArch+MultiOS

Createamulti-archDockerimage

BuildaCIpipeline

Tips&Tricks

Agenda

Page 5: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

whoami

StefanSchererSr.SoDwareEngineerSEALSystems

Blogatstefanscherer.github.io@stefscherer

Page 6: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Whatisacontainer?

Page 7: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Whatisacontainer?

StandardizedpackagingforsoDwareanddependencies

Isolateappsfromeachother

SharethesameOSkernel

WorksforallmajorLinuxdistribuMons

Page 8: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Containersonallmajorplatforms

Page 9: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

dockercontainerrun

Hub

nginx microsoft/iis

Page 10: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

dockercontainerrun-differentOS

Hub

nginx microsoft/iis

⚡ ⚡LCOWFTW!

Page 11: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

dockercontainerrun-differentCPUarchitecture

Hub

nginx

⚡ ⚡

IBMs390

arm32v7/nginx

Page 12: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Manifestlists

Page 13: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Manifestlist

Hub

me/myapp

Page 14: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Manifestlist:dockercontainerrun

Hub

me/myapp me/myappme/myapp

Page 15: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Usecases

Page 16: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

dockerrunportainer/portainer

Page 17: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

dockerrunmicrosoft/dotnet

Page 18: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Manyofficialimagesaremulti-archnow

Windowsworkinprogress…

Page 19: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Howtobuildcontainerimages?

Page 20: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

dockerimagebuild/dockerimagepush

Hub

me/myapp:linux me/myapp:windows

Page 21: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Howtobuildthemanifestlist?

Page 22: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

dockermanifestcommand

Pullrequesthttps://github.com/docker/cli/pull/138Docker17.12?

manifest-toolfromPhilEstes

Binariesathttps://github.com/estesp/manifest-tool/releases

Availability

Page 23: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

dockermanifestcreate

Hub

me/myapp

Page 24: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

dockermanifestpush

Hub

me/myapp

Page 25: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Demo buildingamulti-archcontainerimage

Page 26: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Demo:BuildLinuxamd64+crossforarm(Raspberry)

Page 27: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Demo:BuildWindows2016+1709(withtwoVM’s)

Page 28: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Demo:Createmanifestlist

Page 29: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Demo:Fixcrossbuildarch+variant

Page 30: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Demo:Pushmanifestlist

Page 31: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Demo:EnjoyonLinux(amd64orRaspberryPi)

Page 32: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Demo:EnjoyonWindows10,2016or1709

Page 33: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Demo:ImagesandManifestlistonDockerHub

Page 34: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

HowtobuildaCIpipelineforthat?

Page 35: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

DockerCIPipelineforLinuxandWindowsdockerimagepush

gitpush

dockerimagepush

ContainerRegistry

RunUnitTestsBuildAppdockerimagebuild

dockermanifestpush

Page 36: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Hub

DockerCIPipelineforLinuxandWindowsdockerimagepush

gitpush

dockerimagepush

RunUnitTestsBuildAppdockerimagebuild

dockermanifestpush

Example:github.com/StefanScherer/whoami

Page 37: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Tips&Tricks

Page 38: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

ShowtheplatformsofaDockerHubimage

Page 39: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

ShowtheplatformsofaDockerHubimage

Page 40: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

ShowtheplatformsofaDockerHubimage

Page 41: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

ShowtheplatformsofaDockerHubimage

WindowsServer2016

WindowsServer1709

Page 42: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Usenodeconstraintsinahybridclusterservices:web:image:microsoft/iis

deploy:placement:constraints:

-node.platform.os==windows

Page 43: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Usenodeconstraintsinahybridclusterservices:web:image:nginx

deploy:placement:constraints:

-node.platform.os==linux

Page 44: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

Usenodeconstraintsinahybridcluster"spec":{"containers":[{"name":"iis","image":"microsoft/iis",...}],"nodeSelector":{"beta.kubernetes.io/os":"windows"}}

Page 45: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

dockermanifestcommand

Pullrequesthttps://github.com/docker/cli/pull/138Docker17.12?

manifest-toolfromPhilEstes

Binariesathttps://github.com/estesp/manifest-tool/releases

Availability

Page 46: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

dockerimagebuilddockerimagepush

dockerimagebuilddockerimagepush

dockermanifestcreatedockermanifestpush

Recap

me/myapp

me/myapp:linux

me/myapp:windows

Page 47: Multiarch Docker Images - JUG Saxony · Demo: Enjoy on Linux (amd64 or Raspberry Pi) Demo: Enjoy on Windows 10, 2016 or 1709. Demo: Images and Manifest list on Docker Hub. ... Multiarch

T H A N K Y O U ! Q U E S T I O N S ?

S T E FA N S C H E R E R @ s t e f s c h e r e r


Recommended