2015-03-30 1 Agenda Vad är Docker?
Transcription
2015-03-30 1 Agenda Vad är Docker?
2015-03-30 Build, Ship and Run Any App, Anywhere Agenda • Vad är Docker? • Docker vs. virtuella maskiner. • Historik, status, plattform. • Hello World. • Termer: Image och Containers. • Montera volym, publicera portar, länka. • Dockerfile, Dockerhub. • Användning av resurser. 2 Vad är Docker? Docker is an open-source project that automates the deployment of applications inside software containers, by providing an additional layer of abstraction and automation of operating system–level virtualization on Linux. [Source: en.wikipedia.org] 3 1 2015-03-30 Docker: Namnet [www.docker.com] docker: docker {substantiv} hamnarbetare · stuveriarbetare ·dockarbetare • Tillhandhåller wrapper runt ett mjukvarupaket: «Build, Ship and Run Any App, Anywhere». [www.docker.com] • Likhet med container: container är alltid densamma oavsett innehåll eller hur den fraktas. 4 Docker vs. virtuell maskin Källa: https://www.docker.com/whatisdocker/ 5 Docker i produktion 6 2 2015-03-30 Docker -termer • libvirt: plattform för virtualisering. • LXC (LinuX Containers): Ett antal isolerade Linuxbaserade system (containers) på samma värd. • Skiktbaserat File System. [Source: https://docs.docker.com/terms/layer/] 7 Historik • 2013-03: Första release som Open Source. • 2013-09: Samarbete med RedHat(Fedora, RHEL, OpenShift). • 2014-03: Ett av de största projekten på GitHub. • 2014-05: JAX Innovation Award (pris för mest innovativa produkten). 8 Technology Radar We fully expect to see a large pace of change in the Docker ecosystem over the next year, and strongly suggest you take a look at what Docker could offer your own organisation. Källa: http://www.thoughtworks.com/radar/tools/docker 9 3 2015-03-30 Cloud Computing Trends Docker, in just its first year on the market, is already being used by 13 percent of organizations. Even more impressively, more than a third (35 percent) of respondents report plans to use Docker. Källa: Cloud Computing Trends, january 2015 10 Plattform • Ett antal olika Linux distributioner (Ubuntu, Fedora, RHEL, Centos, openSUSE, ...). • Molntjänster (Amazon EC2, Microsoft Azure, Google Compute Engine, Rackspace). • 2014-10: Microsoft annonserar planer på att integrera Docker med nästa version av Windows Server. 11 Hello World Enkelt kommando - Ad-Hoc Container • Windows: VirtualBox VM (boot2docker) • Använder boot2docker länk för att ansluta till VM via kommandopromt. • docker run busybox /bin/echo ‘Hello World’ • docker images [-a] • docker ps –a 12 4 2015-03-30 Termer – Image • Bestående avspegling som kan köras • images: Listar alla avspeglingar. • run: Skapa container från avspegling och exekvera kommando i denna. • tag: Namnger avspegling. • pull: Laddar ner avspegling från förråd. • rmi: Tar bort lokal avspegling. 13 Termer - Container • Körbara instanser av avspegling • • • • • • • • ps: Listar alla startade containers. ps –a: Lista alla containers (även stoppade). top: Visar processer i container. start: Startar container. stop: Stoppar körning av container. pause: Pausar alla processer inuti container. rm: Tar bort container. commit: Skapar avspegling av container. 14 Daemon Container • Öppnar Terminal i container: • docker run –it ubuntu /bin/bash • Gör eventuella förändringar. • Skapa ny avspegling med modifieringarna: • Docker commit [containerId] [image] • Körs som daemon: docker run –d [image] command • docker logs [-f] [containerId] 15 5 2015-03-30 Montera volymer • Logga till värddator. • Lägger till skript för att logga till: /log/hello3.log • docker run -d –v /home/docker/log:/log /bin/bash /sayHello.sh • Kör andra container, volym kan delas av denna. 16 Publicera port • Sample Web-Server: training/webapp • https://registry.hub.docker.com/u/training/ webapp/ • docker run –d –P training/webapp • Slumpmässig port på värddator. • docker run –d –p 20000:5000 trianing/webapp • Knyter container port 5000 till värddatorns port 20000. 17 Länka containers • Volymer för information kan delas mellan containers. • Information om nätverket kan inkluderas: • docker run --name my_serv1 –d –e PROVIDER=Serv1 training/webapp • docker run –ti --link my_serv1:serv1 ubuntu /bin/bash • set • wget -qO$SERV1_PORT_5000_TCP_ADDR:$SERV1_PORT_500 0_TCP_PORT 18 6 2015-03-30 Dockerfile • Skapar avspegling automatiskt med ett skript: «Dockerfile». • Kan hanteras av system för versionshantering: Git eller SVN, tillsammans med alla beroenden. • Docker Hub kan automatiskt skapa avspeglingar baserade på dockerfiles på Github. 19 Exempel Dockerfile • Dockerfile: • FROM training/webapp ADD testFile.txt /testFile.txt ENV PROVIDER MyDockerFile • Lägger till testFile.txt i avpsegling. • docker build [DockerFileDir] • docker inspect [imageId] 20 Docker Hub • Publikt förråd för Docker images • https://hub.docker.com/ • docker search [term] • Automatiskt: Har byggts automatiskt från Dockerfile. • Källa finns tillgängligt på GitHub. 21 7 2015-03-30 Docker Hub 22 Användning av resurser • top / ps / free -m • Start 100 WebServer containers • docker run -d -p $hostPort:5000 -e "PROVIDER=$provider" training/webapp • docker ps [containerId] • top / ps / free -m 23 Dokumentation • Hemsida för Docker: https://www.docker.com/ • Introduktion: https://www.docker.com/whatisdocker/ • Installation och användareguide: https://docs.docker.com/ 24 8 2015-03-30 Kurs • Docker – grundkurs, 2 dagar. 25 Build, Ship and Run Any App, Anywhere 26 9