kontener aplikacyjny nie tylko dla programistów Łukasz Piątkowski Poznańska Impreza Wolnego Oprogramowania 2014



Podobne dokumenty
kontener aplikacyjny nie tylko dla programistów Łukasz Piątkowski Koło Naukowe SKiSR

Kontenery w Linux. Jakub Pieńkowski 10 maja, Jakub Pieńkowski Kontenery w Linux 10 maja, / 26

Puk, puk! Kto tam? Eeeee... Spadaj!

Proces certyfikowania aplikacji na platformie PureSystems. Rafał Klimczak Lab Services Consultant

Open vswitch lab. Radosław Kujawa 14 czerwca 2017 OSEC

Docker dla początkujących Webinar, 20 lipca 2016 Start: 12:00

# ip addr add dev eth1 $ sudo ip addr add dev eth1 Uwaga: Ustawienia te zostaną utracone po restarcie systemu

Linux Contextualization

Tryb pracy urządzenia jest wyświetlany wewnątrz trójkątnych nawiasów, oto kilka oznaczeń:

Zapis adresu. Adres IPv6 zapisujemy w postaci szesnastkowej, w ośmiu blokach 2-bajtowych Przykład:

OpenContrail jako wtyczka do OpenStacka. Bartosz Górski, Paweł Banaszewski CodiLime

systemd-nspawn kontenery bliższe sercu administratora

Przegląd dostępnych hypervisorów. Jakub Wojtasz IT Solutions Architect

IPv6. Wprowadzenie. IPv6 w systemie Linux. Zadania Pytania. budowa i zapis adresu, typy adresów tunelowanie IPv6 w IPv4

Elastyczna sieć dla rozwiązań Cloud Open vswitch

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Wirtualizacja w praktyce.

Usługi sieciowe w kontenerach systemu operacyjnego CoreOS

GIT. System Kontroli wersji GIT. Rafał Kalinowski

Tomasz Greszata - Koszalin

Automatyczna instalacja oraz zmiana konfiguracji w ramach całego klastra.

CVS system kontroli wersji

Git - podstawy. Błażej Kowalczyk. Koło Naukowe Robotyków KoNaR. 7 listopada 2014

Rozproszony system kontroli wersji GIT. Piotr Macuk

Laboratorium 1: praca przy połączeniach lokalnych wer. 14 z drobnymi modyfikacjami!

System kontroli dostępu ACCO NET Instrukcja instalacji

TCP/IP: Adresy, trasowanie

Tworzenie oprogramowania

Administracja serwerami

WYDZIAŁ ELEKTRYCZNY KATEDRA TELEKOMUNIKACJI I APARATURY ELEKTRONICZNEJ. Pracownia specjalistyczna. Numer ćwiczenia: 5.

Ko n f i gura cja p ra cy V ISO z bazą SQL S e rve r

Red Hat OpenShift: Platforma do uruchamiania aplikacji działających w kontenerach Docker Jarosław Stakuń Senior Solution Architect, Red Hat CEE

Sprawozdanie z zadania 2. Artur Angiel, śr. 12:15

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat usługi DHCP.

Zadanie1. Wykorzystując serwis internetowy Wikipedii wyjaśnij następujące pojęcia: wirtualizacja, VirtualBox, Vmware, KVM, Virtual PC, Hyper-V.

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

SERWER AKTUALIZACJI UpServ

cmt + CODESYS, oraz zdalne wejścia/ wyjścia

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

Letnia Akademia SUSE. Implementacja nowych rozwiązań open source wszystko, co musisz wiedzieć!

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Samba, instalacja i konfiguracja

Tworzenie maszyny wirtualnej

Instrukcja instalacji oprogramowania dla środowiska Linux

2. Jakie i ile licencji Oracle 10g posiada zamawiający i czy posiada do tych licencji wsparcie techniczne?

Bezpieczeństwo IT z Open Source na nowo

Asseco dla Zdrowia r.

Przepełnienie bufora. SQL Injection Załączenie zewnętrznego kodu XSS. Nabycie uprawnień innego użytkownika/klienta/administratora

Wordpress. Wstęp do tworzenia pluginów. Piotr Wasilewski wasilewski.piotrek (at) gmail.com

Co zostanie wypisane na ekranie? (1)

Adam Wójs <adam[shift+2]wojs.pl> git --wprowadzenie

System kontroli wersji git

Bezpieczeństwo systemów informatycznych

Software Defined Networking

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

Informacje które należy zebrać przed rozpoczęciem instalacji RelayFax.

Administratora CSIZS - OTM

IBM SPSS Statistics dla systemu Linux Instrukcje instalacji (licencja sieciowa)

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

SAP BASIS Architektura systemu klient Server

Środowisko programisty. Środowisko programisty 1/35

Letnia Akademia SUSE. Implementacja nowych rozwiązań open source wszystko, co musisz wiedzieć!

Usługa wsparcia technicznego związana ze zmianą stosu technologicznego Oprogramowania Syriusz Std.

Opis instalacji i konfiguracji programu HW Virtual Serial Port z kasą PS3000Net

X P.I.W.O. Portowanie Tizena na nowe architektury na przykładzie ARMv6. Maciej Wereski Samsung R&D Institute Poland. 17 Maj Poznań, Polska

AKADEMIA GÓRNICZO-HUTNICZA. Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki KATEDRA INFORMATYKI. SyncFile

Dokumentacja techniczna

WIRTUALIZACJA. Kamil Frydel, Julia Romanowska, Maciej Sokołowski. 12 listopada 2007 WIRTUALIZACJA. Kamil Frydel, Julia Romanowska, Maciej Sokołowski

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Instalacja NOD32 Remote Administrator

Praca w środowisku Cygwin. Przygotował Mateusz Dudek

VMware vsphere 5.5: Install, Configure, Manage

Przetwarzanie danych w chmurze

Know your tools KVM. Dariusz Puchalak Dariusz_Puchalak < at > ProbosIT.pl

1. System kontroli wersji Instalacja programu kontroli wersji CVS

Dokumentacja instalacyjna i konfiguracyjna Aplikacja ADR. Wersja dokumentu 1.0. Strona 1/9

Wirtualizacje. Opracowali: Piotr Dąbrowiecki Jakub Gołębiowski Winicjusz Szyszka

Git rozproszony system kontroli wersji

OpenStack Neutron Software Defined Networking w prywatnych chmuarch

Wirtualizacja Hyper-V: sposoby wykorzystania i najnowsze wyniki badań

Asix. Konfiguracja serwera MS SQL dla potrzeb systemu Asix. Pomoc techniczna NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

Instalacja Systemu Linux na maszynie writualnej

hdd - dysk używany uzywany do równoległych stacji roboczych - parallel desktops

Q E M U.

SERWER AKTUALIZACJI UpServ

TUTORIAL. Instalacja Ubuntu 9.04 w VirtualBox'ie. Łukasz Grzywacz lgrzywac@gmail.com

SERWER AKTUALIZACJI UpServ

Konfiguracja vsftpd ( Very Secure FTP Server )

Zmiana sposobu dostarczania aplikacji wspierających funkcje państwa

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Uruchamianie aplikacji za pomocą kontenerów Docker SUSE Expert Days 2016

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Szczegółowy Opis Przedmiotu Zamówienia

Programowanie I

Przykładowa konfiguracja komunikacji pomiędzy oprogramowaniem Wonderware i Codesys z wykorzystaniem sieci LAN lub modułu GSM

INSTRUKCJA I WSKAZÓWKI

Wsparcie migracji obliczeń poprzez wirtualizację zasobów sieciowych

Zarządzanie systemem komendy

Transkrypt:

kontener aplikacyjny nie tylko dla programistów Łukasz Piątkowski Instytut Informatyki Politechnika Poznańska Poznańska Impreza Wolnego Oprogramowania 2014 Łukasz Piątkowski PIWO X 17052014 1 / 29

Plan 1 Czym jest docker? 2 Docker bliżej Jak to działa? Dla programisty Dla administratora 3 Podsumowanie Łukasz Piątkowski PIWO X 17052014 2 / 29

Plan 1 Czym jest docker? 2 Docker bliżej Jak to działa? Dla programisty Dla administratora 3 Podsumowanie Łukasz Piątkowski PIWO X 17052014 3 / 29

Kontenery a maszyny wirtualne maszyny wirtualne wirtualizacja sprzętu (degradacja wydajności) własny kernel pełna maszyna kontenery chroot na sterydach wspólny kernel własne zasoby pamięci, dysku, I/O Łukasz Piątkowski PIWO X 17052014 4 / 29

Kontenery a maszyny wirtualne Łukasz Piątkowski PIWO X 17052014 5 / 29

Kontenery LXC (LinuX Containers) obecne standardowo w jądrze Linuxa od wersji 38 wykorzystują przestrzenie nazw jądra przestrzenie pid, net, ipc, mnt, ups mogą mieć własny program init mogą mieć własnego użytkownika root widoczne z poziomu przestrzeni nazw rodzica wykorzystują mechanizm cgroups pseudo system plików pozwala przypisywać procesy do grup a grupom ustalać limity zasobów systemowych pamięć, CPU, block I/O, CPU pinning niezależne od LXC Łukasz Piątkowski PIWO X 17052014 6 / 29

Kontenery LXC (LinuX Containers) obecne standardowo w jądrze Linuxa od wersji 38 wykorzystują przestrzenie nazw jądra przestrzenie pid, net, ipc, mnt, ups mogą mieć własny program init mogą mieć własnego użytkownika root widoczne z poziomu przestrzeni nazw rodzica wykorzystują mechanizm cgroups pseudo system plików pozwala przypisywać procesy do grup a grupom ustalać limity zasobów systemowych pamięć, CPU, block I/O, CPU pinning niezależne od LXC Łukasz Piątkowski PIWO X 17052014 6 / 29

Gdzie jest docker? LXC + cgroups = rozwiązanie! a właściwie niekoniecznie LXC niepotrzebne od v09 Łukasz Piątkowski PIWO X 17052014 7 / 29

Gdzie jest docker? docker to zarządca kontenerów aplikacyjnych kontenery nie muszą mieć procesu init, można uruchomić bezpośrednio proces aplikacji uruchamiający kontener nie musi nic o tej aplikacji wiedzieć niezależnie od użytej dystrybucji niezależnie od wykorzystywanych bibliotek niezależnie od środowisk uruchomieniowych kontener na aplikację/usługę i znacznie więcej Łukasz Piątkowski PIWO X 17052014 8 / 29

Docker kontener aplikacyjny Transport towarów do 1960 r Łukasz Piątkowski PIWO X 17052014 9 / 29

Docker kontener aplikacyjny Transport towarów po 1960 r Łukasz Piątkowski PIWO X 17052014 10 / 29

Docker kontener aplikacyjny Dostarczanie aplikacji Łukasz Piątkowski PIWO X 17052014 11 / 29

Docker kontener aplikacyjny Docker kontener na aplikacje Łukasz Piątkowski PIWO X 17052014 12 / 29

Plan 1 Czym jest docker? 2 Docker bliżej Jak to działa? Dla programisty Dla administratora 3 Podsumowanie Łukasz Piątkowski PIWO X 17052014 13 / 29

Plan 1 Czym jest docker? 2 Docker bliżej Jak to działa? Dla programisty Dla administratora 3 Podsumowanie Łukasz Piątkowski PIWO X 17052014 14 / 29

Wnętrzności LXC i cgroups AUFS czym jest: co daje: unifikujący system plików (ang union FS) pozwala trzymać pewien bazowy stan tylko do odczytu i nakładać na niego indywidualne modyfikacje w momencie ich pojawienia się (ang copy-on-write) możliwość używania bazowych obrazów błyskawiczne tworzenie instancji kontenerów efektywne rozsyłanie obrazów kontenerów Łukasz Piątkowski PIWO X 17052014 15 / 29

Wnętrzności LXC i cgroups AUFS czym jest: co daje: unifikujący system plików (ang union FS) pozwala trzymać pewien bazowy stan tylko do odczytu i nakładać na niego indywidualne modyfikacje w momencie ich pojawienia się (ang copy-on-write) możliwość używania bazowych obrazów błyskawiczne tworzenie instancji kontenerów efektywne rozsyłanie obrazów kontenerów Łukasz Piątkowski PIWO X 17052014 15 / 29

Funkcjonalność zarządzanie obrazami i kontenerami zdalne repozytorium możliwość pobierania i wysyłania obrazów # docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE # docker search ubuntu NAME DESCRIPTION STARS OFFICIAL TRUSTED ubuntu General use Ubuntu base image Tags availa 91 stackbrew/ubuntu Barebone ubuntu images 32 # docker pull ubuntu Pulling repository ubuntu 5ac751e8d623: Downloading [======> 9cc9ea5ea540: Pulling dependent layers 9f676bd305a4: Pulling dependent layers 9cd978db300e: Pulling dependent layers eb601b8965b8: Pulling dependent layers 511136ea3c5a: Download complete 321f7f4200f4: Download complete ] 2272 MB/5808 MB 17s Łukasz Piątkowski PIWO X 17052014 16 / 29

Funkcjonalność # docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu 1310 9f676bd305a4 10 days ago 178 MB ubuntu saucy 9f676bd305a4 10 days ago 178 MB ubuntu raring eb601b8965b8 10 days ago 1665 MB ubuntu 1304 eb601b8965b8 10 days ago 1665 MB ubuntu 1210 5ac751e8d623 10 days ago 161 MB ubuntu quantal 5ac751e8d623 10 days ago 161 MB ubuntu 1004 9cc9ea5ea540 10 days ago 1808 MB ubuntu lucid 9cc9ea5ea540 10 days ago 1808 MB ubuntu 1204 9cd978db300e 10 days ago 2044 MB ubuntu latest 9cd978db300e 10 days ago 2044 MB ubuntu precise 9cd978db300e 10 days ago 2044 MB # docker run -i -t ubuntu:saucy /bin/bash root@f0da55a552c5:/# cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=1310 DISTRIB_CODENAME=saucy DISTRIB_DESCRIPTION="Ubuntu 1310" root@f0da55a552c5:/# ip a sh dev eth0 35: eth0: <BROADCAST,UP,LOWER_UP > mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 62:8b:40:69:db:6c brd ff:ff:ff:ff:ff:ff inet 1721702/16 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::608b:40ff:fe69:db6c/64 scope link valid_lft forever preferred_lft forever Łukasz Piątkowski PIWO X 17052014 17 / 29

Plan 1 Czym jest docker? 2 Docker bliżej Jak to działa? Dla programisty Dla administratora 3 Podsumowanie Łukasz Piątkowski PIWO X 17052014 18 / 29

Dla programisty dockerfile instrukcja budowania kontenera # Ubuntu 1310 with mono FROM ubuntu:1310 MAINTAINER Lukasz Piatkowski # make sure the package repository is up to date RUN apt-get update ADD build_monosh /tmp/build_monosh RUN chmod 755 /tmp/build_monosh RUN cd /tmp && /build_monosh użycie # docker build -t ubuntu_mono:13:10_323 # docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE return_cat ubuntu_mono:13:10_323 b4af129c6134 3 days ago 8016 MB # docker push ubuntu_mono:13:10_323 Łukasz Piątkowski PIWO X 17052014 19 / 29

Workflow Łukasz Piątkowski PIWO X 17052014 20 / 29

Dla programisty prosta integracja z systemami automatycznego budowania plugin dla Jenkins prosta integracja z wszystkim innym funkcjonalność dostępna przez REST API zbuduj raz, uruchom wszędzie 1 proste continuous deployment ujednolicenie środowiska programisty, budowania/testów i uruchomienia na serwerze koniec mniej problemów typu u mnie działa 1 o ile jest Linuxem z jądrem >= 38 Łukasz Piątkowski PIWO X 17052014 21 / 29

Dla programisty prosta integracja z systemami automatycznego budowania plugin dla Jenkins prosta integracja z wszystkim innym funkcjonalność dostępna przez REST API zbuduj raz, uruchom wszędzie 1 proste continuous deployment ujednolicenie środowiska programisty, budowania/testów i uruchomienia na serwerze koniec mniej problemów typu u mnie działa 1 o ile jest Linuxem z jądrem >= 38 Łukasz Piątkowski PIWO X 17052014 21 / 29

Plan 1 Czym jest docker? 2 Docker bliżej Jak to działa? Dla programisty Dla administratora 3 Podsumowanie Łukasz Piątkowski PIWO X 17052014 22 / 29

Dla administratora brak zależności aplikacji na dystrybucję, paczki, biblioteki, izolacja kontenerów kontrola nad zasobami lepsza wydajność lepsze wykorzystanie zasobów Łukasz Piątkowski PIWO X 17052014 23 / 29

Obsługa administracyjna zarządzanie obrazami kontenerów (repozytorium) dostarczenie sieci (software bridge L2) # ip link show 1: lo: <LOOPBACK,UP,LOWER_UP > mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP > mtu 1500 qdisc noqueue state UP mode DEFAULT link/ether fe:71:07:5d:14:52 brd ff:ff:ff:ff:ff:ff 5: vethbbeyi8: <BROADCAST,MULTICAST,UP,LOWER_UP > mtu 1500 qdisc pfifo_fast master docker0 state UP mode DEFAULT qlen 1000 link/ether fe:71:07:5d:14:52 brd ff:ff:ff:ff:ff:ff # brctl show bridge name bridge id STP enabled interfaces docker0 8000fe71075d1452 no vethbbeyi8 port forwarding (L3) mapowanie katalogów gospodarza na katalogi gościa # docker run -t -d -p 9666:9666 -p 8666:8666 -v \ /srv/docker -mydaemon -logs:/srv/mydaemon/logs/:rw \ mydaemon:20140122_115837 Łukasz Piątkowski PIWO X 17052014 24 / 29

Połączenia między kontenerami # docker pull ubuntu # docker run -i -t --name ssh --expose 22 ubuntu:1404 /bin/bash root@8bad59172a7a:/# apt-get update && apt-get install openssh -server exit root@8bad59172a7a:/# docker start ssh # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4fd5cf8a6c7e ubuntu:1404 /bin/bash 2 minutes ago Up 7 seconds 22/tcp ssh # docker run -i -t --name client --link ssh:srv ubuntu:1404 /bin/bash root@bd47c5e7e9a3:/# env SRV_PORT=tcp://1721702:22 HOSTNAME=bd47c5e7e9a3 SRV_NAME=/client/srv SRV_PORT_22_TCP_PORT=22 SRV_PORT_22_TCP_PROTO=tcp SRV_PORT_22_TCP_ADDR =1721702 SRV_PORT_22_TCP=tcp://1721702:22 root@bd47c5e7e9a3:/# grep srv /etc/hosts 1721702 srv root@bd47c5e7e9a3:/# exit # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4fd5cf8a6c7e ubuntu:1404 /bin/bash 2 minutes ago Up 7 seconds 22/tcp client/srv,ssh bd47c5e7e9a3 ubuntu:1404 /bin/bash 8 minutes ago Exited (0) client Łukasz Piątkowski PIWO X 17052014 25 / 29

W większej skali docker rozwijany jest w stronę systemów cloud wwwdotcloudcom platforma PaaS zbudowana przez autorów dockera Shipyard mini wwwdotcloudcom docker + zarządzanie maszynami + hipache + panel WWW pipework SDN dla dockera wspiera Open vswitch OpenStack od IceHouse Heat ma wsparcie dla Dockera planowana integracja z Nova CoreOS mini dystrybucja dla klastrów aplikacyjnych automatyczne atomowe aktualizacje systemd + docker + etcd (rozproszona baza Key Value dla wsparcia konfiguracji) Project Atomic dystrybucja wspierana przez Red Hat Łukasz Piątkowski PIWO X 17052014 26 / 29

Plan 1 Czym jest docker? 2 Docker bliżej Jak to działa? Dla programisty Dla administratora 3 Podsumowanie Łukasz Piątkowski PIWO X 17052014 27 / 29

Podsumowanie Ciekawa opcja na pogodzenie świata programistów i administratorów tak naprawdę system dostarczania aplikacji Prosty dla programisty, prosty dla administratora Ciekawe projekty i możliwości na horyzoncie Łukasz Piątkowski PIWO X 17052014 28 / 29

Linki https://wwwdockerio/ https://wwwdotcloudcom/ https://githubcom/shipyard/shipyard https://coreoscom/ https://githubcom/jpetazzo/pipework https://wikiopenstackorg/wiki/docker Łukasz Piątkowski PIWO X 17052014 29 / 29

Dziękuję za uwagę

piwoxdocker@gmailcom