Docker Online Meetup #22: Docker NetworkingDocker, Inc.
Building on top of his talk at DockerCon 2015, Jana Radhakrishnan, Lead Software Engineer at Docker, does a deep dive into Docker Networking with additional demos and insights on the product roadmap.
Docker - un outil pour faciliter le développement et le déploiement informatiquesdenier
Cette présentation s'adresse aussi bien aux débutants qu'aux utilisateurs de Docker cherchant à en découvrir de nouveaux aspects.
- caractéristiques de Docker et écosystème
- cas d'usage : création d’environnement automatisé pour le développement, déploiement et orchestration de conteneurs, Docker sous Windows
Présentation donnée dans le cadre du Festival Transfo 2019 http://www.festival-transfo.fr/evenement/145/14-docker-un-outil-pour-faciliter-le-developpement-et-le-deploiement-informatique.htm
Rejoindre le meetup des Matinales techniques de Sogilis : https://www.meetup.com/Les-matinales-techniques-de-Sogilis
Swarm in a nutshell
• Exposes several Docker Engines as a single virtual Engine
• Serves the standard Docker API
• Extremely easy to get started
• Batteries included but swappable
Docker Online Meetup #22: Docker NetworkingDocker, Inc.
Building on top of his talk at DockerCon 2015, Jana Radhakrishnan, Lead Software Engineer at Docker, does a deep dive into Docker Networking with additional demos and insights on the product roadmap.
Docker - un outil pour faciliter le développement et le déploiement informatiquesdenier
Cette présentation s'adresse aussi bien aux débutants qu'aux utilisateurs de Docker cherchant à en découvrir de nouveaux aspects.
- caractéristiques de Docker et écosystème
- cas d'usage : création d’environnement automatisé pour le développement, déploiement et orchestration de conteneurs, Docker sous Windows
Présentation donnée dans le cadre du Festival Transfo 2019 http://www.festival-transfo.fr/evenement/145/14-docker-un-outil-pour-faciliter-le-developpement-et-le-deploiement-informatique.htm
Rejoindre le meetup des Matinales techniques de Sogilis : https://www.meetup.com/Les-matinales-techniques-de-Sogilis
Swarm in a nutshell
• Exposes several Docker Engines as a single virtual Engine
• Serves the standard Docker API
• Extremely easy to get started
• Batteries included but swappable
Docker is the world’s leading software container platform. Developers use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers. Operators use Docker to run and manage apps side-by-side in isolated containers to get better compute density. Enterprises use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux and Windows Server apps.
Learn More: http://www.collabnix.com
Gives a brief introduction of the emerging containerization technology, the difference in traditional VMs and Conatiners and the most popular one- Docker
Docker For Windows | Setting Up Docker On Windows | EdurekaEdureka!
** Docker Training : https://www.edureka.co/docker-training **
YouTube Video: https://youtu.be/iJeL2tOFfvM
In this PPT on Docker For Windows we’ll discuss about one of the most popular DevOps tools, i.e. docker. Docker is one of the best containerization platforms out there and in this PPT, we’re specifically going to discuss docker for windows. I’ll be covering the following topics:
Why use Docker For Windows?
Prerequisites
Tools installed with Docker For Windows
What is Docker?
Docker Terminologies
Install Docker For Windows
Hands-On
Check our complete DevOps playlist here (includes all the videos mentioned in the video): http://goo.gl/O2vo13
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Docker 101 is a series of workshops that aims to help developers (or interested people) to get started with docker.
The workshop 101 is were the audience has the first contact with docker, from installation to manage multiple containers.
- Installing docker
- managing images (docker rmi, docker pull)
- basic commands (docker info, docker ps, docker images, docker run, docker commit, docker inspect, docker exec, docker diff, docker stop, docker start)
- Docker registry
- container life cycle (running, paused, stopped, restarted)
- Dockerfile
source : http://www.opennaru.com/opensource/kubernetes/
Kubernetes는 컨테이너화된 애플리케이션(Containerized Application)의 배포, 확장 그리고 관리를 할 수 있는 오픈 소스 컨테이너 오케스트레이션 시스템입니다.
쿠버네티스는 구글 엔지니어들이 개발하고 설계한 플랫폼으로서 사내에서 이용하던 컨테이너 클러스터 관리 도구인 “Borg”의 아이디어를 바탕으로 만들어진 오픈소스 소프트웨어입니다.
구글은 쿠버네티스의 원천이 되는 Borg를 수년 동안 개발하고 운영하면서 축적된 경험을 바탕으로 쿠버네티스를 오픈소스 프로젝트로 만들어 었습니다.
Apresentação Docker básico (história, comunidade, conceito, vm vs docker, comandos, dockerfile, docker compose, docker swarn, docker engine)
Para ver o slide em qualidade melhor, fazer o download
Docker jest wspaniałą technologią. Przy pomocy Dockera w prosty sposób możemy rozwiązać jeden problem, a na jego miejsce stworzyć dwa inne, nowe, bardziej skomplikowane... Co jest powodem takiego stanu rzeczy? Czy przyczyną jest architektura Dockera? Brak zrozumienia? A może coś więcej?
Docker is the world’s leading software container platform. Developers use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers. Operators use Docker to run and manage apps side-by-side in isolated containers to get better compute density. Enterprises use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux and Windows Server apps.
Learn More: http://www.collabnix.com
Gives a brief introduction of the emerging containerization technology, the difference in traditional VMs and Conatiners and the most popular one- Docker
Docker For Windows | Setting Up Docker On Windows | EdurekaEdureka!
** Docker Training : https://www.edureka.co/docker-training **
YouTube Video: https://youtu.be/iJeL2tOFfvM
In this PPT on Docker For Windows we’ll discuss about one of the most popular DevOps tools, i.e. docker. Docker is one of the best containerization platforms out there and in this PPT, we’re specifically going to discuss docker for windows. I’ll be covering the following topics:
Why use Docker For Windows?
Prerequisites
Tools installed with Docker For Windows
What is Docker?
Docker Terminologies
Install Docker For Windows
Hands-On
Check our complete DevOps playlist here (includes all the videos mentioned in the video): http://goo.gl/O2vo13
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Docker 101 is a series of workshops that aims to help developers (or interested people) to get started with docker.
The workshop 101 is were the audience has the first contact with docker, from installation to manage multiple containers.
- Installing docker
- managing images (docker rmi, docker pull)
- basic commands (docker info, docker ps, docker images, docker run, docker commit, docker inspect, docker exec, docker diff, docker stop, docker start)
- Docker registry
- container life cycle (running, paused, stopped, restarted)
- Dockerfile
source : http://www.opennaru.com/opensource/kubernetes/
Kubernetes는 컨테이너화된 애플리케이션(Containerized Application)의 배포, 확장 그리고 관리를 할 수 있는 오픈 소스 컨테이너 오케스트레이션 시스템입니다.
쿠버네티스는 구글 엔지니어들이 개발하고 설계한 플랫폼으로서 사내에서 이용하던 컨테이너 클러스터 관리 도구인 “Borg”의 아이디어를 바탕으로 만들어진 오픈소스 소프트웨어입니다.
구글은 쿠버네티스의 원천이 되는 Borg를 수년 동안 개발하고 운영하면서 축적된 경험을 바탕으로 쿠버네티스를 오픈소스 프로젝트로 만들어 었습니다.
Apresentação Docker básico (história, comunidade, conceito, vm vs docker, comandos, dockerfile, docker compose, docker swarn, docker engine)
Para ver o slide em qualidade melhor, fazer o download
Docker jest wspaniałą technologią. Przy pomocy Dockera w prosty sposób możemy rozwiązać jeden problem, a na jego miejsce stworzyć dwa inne, nowe, bardziej skomplikowane... Co jest powodem takiego stanu rzeczy? Czy przyczyną jest architektura Dockera? Brak zrozumienia? A może coś więcej?
[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...Future Processing
Prezentacja z VI edycji Quality Excites.
Jednym z największych problemów, z jakim borykają się zespoły testowe, jest konfiguracja środowisk i danych testowych oraz zarządzanie testami automatycznymi w tych środowiskach. Z pomocą może przyjść Docker — narzędzie do „wirtualizacji” aplikacji oraz testów. Dzięki zastosowaniu Dockera możliwe jest nie tylko łatwiejsze budowanie środowisk lokalnych w codziennej pracy testerów, lecz także dokładniejsze konfigurowanie środowisk do testów regresyjnych oraz wykonywanie testów automatycznych w Continuous Integration.
Adrian w swojej prezentacji podał kilka podstawowych założeń Dockera, a następnie pokazał przykładowe rozwiązanie dla testów regresyjnych jednej aplikacji. Rozszerzył także ten temat na wiele zdockeryzowanych aplikacji i śledzenie konfiguracji środowiska, na którym uruchamiane są testy regresyjne przed wydaniem wersji.
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...HighSolutions Sp. z o.o.
Prezentacja, która miała miejsce 2018-04-25 w Poznaniu. Wykonanie: Marek Tenus (HighSolutions).
Jak zainstalować i skonfigurować Dockera? Czym się różni od innych rozwiązań? Jakie są korzyści z korzystania z Dockera?
Prezentacja będzie zawierała luźne anegdoty i doświadczenia z używania kontenerów dockera w produkcji, również do hostowania aplikacji PHP. Sposoby budowania kontenerów, typowe problemy deploymentu.
Przenieś się do kontenera, czyli korzyści z Docker i Docker ComposeMariusz Bąk
Docker i Docker Compose to popularne wśród deweloperów narzędzia do konteneryzacji i orkiestracji kontenerów, które wypierają wcześniej stosowaną wirtualizację. Dzięki nim możemy opisywać infrastrukturę za pomocą kodu, utrzymywać jej spójność w ramach zespołu deweloperskiego oraz wersjonować ją. Znacznie ułatwia to rozwijanie złożonych z wielu usług aplikacji.
Prezentacja zawiera krótkie wprowadzenie do tych narzędzi oraz pokazuje kilka użytecznych i ułatwiających pracę trików. Prezentuje również stworzone przeze mnie open-source'owe narzędzie Feater, służące do dynamicznego tworzenia izolowanych środowisk testowych i demonstracyjnych. Dzięki wykorzystaniu przez nie konteneryzacji, można je szybko wdrożyć w typowym wykorzystującym Docker Compose projekcie
Laravel Poznań Meetup #4 - EloquentSequence - Historia pewnej biblioteki Open...HighSolutions Sp. z o.o.
Prezentacja, która miała miejsce 2018-05-24 w Poznaniu. Wykonanie: Adam Matysiak (HighSolutions). Czemu tworzyć biblioteki Open Source i jak je stworzyć w Laravelu. Na przykładzie paczki Eloquent Sequence.
Kainos Tech Space #1 : DevOps : Artur Senk - Jenkins, najważniejsze narzędzie...Kainos Polska
O Jenkinsie lub podobnych narzędziach słyszał chyba każdy deweloper i każdy ops. Dla jednych i drugich jest to bardzo często główne okno, przez które widać co się dzieje w projekcie jak i miejsce, gdzie można mieć bezpośredni wpływ na każdy etap kodu „przepływającego” z maszyn deweloperów na produkcję. O sile Jenkinsa stanowi mnogość wszelkiego rodzaju dodatków i nieskończona możliwość ich konfiguracji. Na przykładach z obecnego projektu chcę pokazać, jakie konkretnie pluginy i rozwiązania ułatwiają nam życie.
JDD 2016 - Marcin Stozek - Docker. Przewodnik dla poczatkujacychPROIDEA
Docker, z Dockerem, o Dockerze, Docker to, Docker tamto, Docker na prezydenta. Strach otworzyć lodówkę. Ale co to właściwie jest i czy może być przydatne dla zwykłego, poczciwego programisty? Podczas prezentacji dowiesz się jak zacząć swoją przygodę z tą technologią a przy okazji trochę o kontenerach, ich podstawach, wydajności i bezpieczeństwie oraz całym ekosystemie.
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...The Software House
Niezależnie od tego, czy jesteście developerami, sysadminami, czy też DevOps Engineers – prawie na pewno mieliście doświadczenie z webowymi panelami dostawców usług infrastrukturalnych takich jak AWS, GCP czy też OVH. Z poziomu tych paneli da się “wyklikać” wszystko, czego potrzeba, ale… czy aby na pewno tędy droga? Środowiskiem bardziej naturalnym dla każdego inżyniera jest wszakże edytor tekstu (czy też IDE) oraz różnorakie polecenia wydawane komputerowi w formie skryptów. Czemu by więc z tego nie skorzystać? Jeśli od klikania bez możliwości pomyłki boli Was ręka, zainwestuj w podkładkę pod mysz… ale przede wszystkim wpadnij na prelekcję Piotra, na której to opowie o założeniach podejścia IaC, jego zaletach oraz przedstawi najpopularniejsze narzędzia.
Najnowsza wersja Delphi -- jednego z flagowych produktów firmy Borland, łączy w sobie trzy znane środowiska programistyczne: tradycyjne Delphi, Delphi dla .NET oraz C# Builder. Zawarcie w jednym systemie tak wielu możliwości pozwala programistom tworzyć różne rodzaje aplikacji -- zarówno te, do których pisania przyzwyczaili się, korzystając z poprzednich wersji Delphi, jak i programy wykorzystujące zyskującą coraz większą popularność platformę .NET. Dzięki możliwości przenoszenia kodu do środowiska Kylix pracującego pod kontrolą systemu operacyjnego Linux Delphi jest jedną z najbardziej uniwersalnych platform dla programistów i projektantów rozbudowanych aplikacji przeznaczonych do działania w sieci.
"Delphi 2005. 303 gotowe rozwiązania" to książka dla programistów zainteresowanych tworzeniem rozbudowanych aplikacji i wykorzystywaniem w tym celu wszystkich możliwości oferowanych przez najnowszą wersję środowiska Delphi. Opisuje zasady tworzenia programów wykorzystujących biblioteki systemowe Windows i interfejs WinAPI oraz przedstawia rozwiązania problemów, na jakie można się natknąć pisząc aplikację wykraczającą poza możliwości oferowane przez standardowe komponenty dołączane do Delphi. Książka jest zbiorem funkcji, klas i sztuczek, za pomocą których można rozszerzyć możliwości biblioteki VCL, VCL.NET i Windows Forms, sięgając głębiej do zasobów systemu.
* Elementy środowiska Delphi 2005
* Programowanie obiektowe w Delphi 2005
* Obsługa wyjątków w języku Object Pascal
* Korzystanie z informacji zapisanych w rejestrze
* Obsługa systemu plików
* Tworzenie wygaszaczy ekranu
* Projektowanie własnych komponentów
* Stosowanie interfejsu WinAPI w aplikacjach
* Wykorzystywanie możliwości multimedialnych Windows
* Obsługa mechanizmów OLE oraz kontrolek ActiveX
* Elementy biblioteki Indy
* Tworzenie aplikacji sieciowych
* Grafika i biblioteki DirectX.NET
Jeśli chcesz tworzyć profesjonalne aplikacje, wykorzystując Delphi, przeczytaj tę książkę -- znajdziesz tu wiadomości, dzięki którym unikniesz wielu problemów.
Bartosz Tkaczewski: Zarządzanie kontenerami może być proste, a nawet przyjemne. Na prezentacji dowiesz się, jak szybko uruchomić klaster na chmurze Googla oraz jak w szybki i wygodny sposób wdrożyć aplikację. Nie zabraknie liźnięcia technikaliów – tych podstawowych i tych nie do końca oczywistych. Aby wilk był syty, a i owca nadal beczała.
Link do repozytorium: https://github.com/tkaczu/uszanowanko-k8s
Wprowadzenie do technologii Big Data / Intro to Big Data EcosystemSages
Introduction to Hadoop Map Reduce, Pig, Hive and Ambari technologies.
Workshop deck prepared and presented on September 5th 2015 by Radosław Stankiewicz.
During that the day participants had also the possibility to go through prepared tutorials and test their analysis on real cluster.
Codepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash courseSages
Szybkie wprowadzenie do technologii Pig i Hive z ekosystemu Hadoop. Prezentacja wykonana w ramach warsztatów Codepot w dniu 29.08.2015. Prezentacja wykonana przez Radosława Stankiewicza oraz Bartłomieja Tartanusa.
3. Agenda
1) Organizacja warsztatu.
2) Instalacja i konfiguracja Dockera.
3) Docker – kilka definicji.
4) Czym jest Docker? Dlaczego go używać?
5) Kontenery – koncepcja, uruchamianie, usługi.
6) Wolumeny.
7) Obrazy kontenerów – definiowanie, tworzenie, zarządzanie.
8) Komunikacja pomiędzy kontenerami i światem zewnętrznym.
9) Docker Compose.
10) Retrospekcja.
11) Dyskusja.
3
4. Organizacja warsztatu
▪ Warsztat - wykłady przeplatane dużą ilością
ćwiczeń
▪ Po każdym ćwiczeniu pokazuję rozwiązanie
▪ Ściśle ustalony harmonogram
▪ Przerwy co około 1 – 1,5h
▪ Lunch około 13:00
▪ Pytania – w trakcie
▪ Ankiety pod koniec warsztatu
4
5. Instalacja - wersje
▪ Darmowa wersja Community Edition
▪ Płatna wersja Enterprise Edition
▪ Natywna instalacja na dystrybujcach Linuxa
– CentOS, RHEL, Fedora, Ubuntu, ...
▪ Mac OS X korzysta z HyperKit VM
▪ Windows korzysta z Hyper-V
▪ Wsparcie dla Azure
▪ Wsparcie dla AWS
5
6. Czym jest kontener?
▪ Kompletna paczka zawierająca:
– Uruchomione procesy
– Aplikację
– Biblioteki
– Konfigurację środowiska
uruchomieniowego
– Zasoby
▪ Kontener jest odizolowany
6
8. Czym jest obraz kontenera?
▪ Cała zawartość dyskowa potrzebna do
uruchomienia kontenera.
▪ Zrzut, ‘snapshot’ kontenera
▪ Obraz w Dockerze ma historię
8
9. Obraz a kontener
▪ Uruchomienie obrazu tworzy kontener
– Do obrazu jest dodane środowisko
uruchomieniowe – pamięć, CPU
– Do obrazu są dodane procesy
▪ Zapisanie kontenera tworzy/aktualizuje obraz
9
10. Po co korzystać z Dockera?
▪ Prostota przygotowania złożonego środowiska od podstaw
▪ Łatwość dostarczenia aplikacji wraz z zależnościami
▪ Uproszczone wdrożenia
▪ Kontrola zużycia zasobów
▪ Izolacja od hosta oraz innych kontenerów
▪ Niewielki narzut zużycia zasobów
▪ Mikroserwisy
10
11. Ćwiczenie 1 – 5 minut
1) Uruchomić VirtualBox
2) Połączyć się po ssh (root/password)
3) Sprawdzić wersję Dockera
4) Sprawdzić listę dostępnych obrazów
11
docker --version
docker images
12. Uruchamianie kontenerów
Pomoc
1) Wyświetlenie opisu komendy
2) Wyświetlenie szczegółów obiektu, np. kontenera
3) Dokumentacja:
https://docs.docker.com/
12
docker help KOMENDA
docker inspect NAZWA lub HASH
13. Uruchamianie kontenerów
Uruchomienie POLECENIA wewnątrz kontenera:
Kontener działa tak długo, jak długo działa POLECENIE!
Obraz może definiować domyślne polecenie.
Przykład:
13
docker run [--name=NAZWA] OBRAZ [POLECENIE]
docker run centos echo "Pierwszy kontener"
16. Uruchamianie kontenerów
Dobre praktyki:
1) Jeden kontener – jedno zadanie
2) Uruchomienie kontenera powinno zajmować jak najmniej
czasu – większość konfiguracji w obrazie
3) Usługa uruchomiona w kontenerze powinna zapewnić
obsługę sygnałów („docker stop” wysyła SIGTERM)
4) Współdzielone dane w wolumenach
16
17. Ćwiczenie 2 – 10 minut
1) Uruchomić kontener z obrazu centos
2) Kontener o nazwie „hello-container”
3) Kontener ma wyświetlić „Hello Container””
4) Sprawdzić, czy kontener jest aktywny
17
18. Uruchamianie kontenerów
Kopiowanie plików do kontenera
Kopiowanie plików z kontenera
18
docker cp PLIK KONTENER:MIEJSCE_DOCELOWE
docker cp KONTENER:PLIK MIEJSCE_DOCELOWE
19. Uruchamianie usług w
kontenerach
Wariant 1 – polecany
1) Utworzyć plik sterujący wywołaniem – uruchamiający usługi
i kontrolujący stan
2) Plik sterujący nie może się kończyć przez zakończeniem
aplikacji
3) Wywołać plik sterujący jako KOMENDĘ dla kontenera
19
20. Uruchamianie usług w
kontenerach
Wariant 2
Warunki konieczne wyboru wariantu:
1) Pewność, że uruchamiany program się nie kończy.
2) Pewność, że program obsługuje sygnały.
Program jest KOMENDĄ polecenia docker run, np.
20
docker run -d … … … mysql:5.7 mysqld
21. Uruchamianie usług w
kontenerach
Wariant 3
1) Uruchomić kontener z nieskończonym procesem, np.
2) Uruchomić program
21
docker run -dt OBRAZ tail -f /dev/null
docker exec KONTENER KOMENDA
23. Uruchamianie usług w
kontenerach
Zatrzymanie kontenera
Proces wewnątrz kontenera otrzyma sygnał SIGTERM, a po
określonym czasie SIGKILL.
Alternatywa – zatrzymanie głównego procesu
uruchomionego w kontenerze
23
docker stop KONTENER
25. Ćwiczenie 3 – 20 minut
Uruchomić serwer www Apache Http
UWAGA – polecenie docker run musi mieć dodatkowy argument:
Wykorzystać obraz „centos” - ma zainstalowany httpd
Polecenie uruchamiające usługę – httpd
Polecam wariant 3
Wynik – wyświetlona strona http://localhost:8080/
Dodatkowe zadanie: umieścić plik ~/index.html w
kontenerze w lokalizacji /var/www/html
25
docker run -p 8080:80 ...
26. Kontenery – zasoby i pamięć
Proces w kontenerze może spowodować „Out of Memory
Error” hosta!
Ustawienie limitu pamięci dla kontenera:
Jednostkę ustawiamy jako:
b, k, m, g
26
docker run --memory=”10m” ...
27. Kontenery – zasoby i pamięć
Proces wewnątrz kontenera może wykorzystać cały czas
procesora
Ograniczenie przydzielonego czasu procesora:
Liczba określa ile rdzeni ma zostać przydzielone
27
docker run --cpus=”0.5” …
28. Ćwiczenie 4 – 15 minut
1) Uruchomić kontener w trybie interaktywnym
2) Uruchomić test obciążenia
3) Zamknąć kontener, uruchomić ponownie:
4) Z ograniczeniem 100MB pamięci
5) Z ograniczeniem 0.2 CPU
6) Obserwować zużycie zasobów w top
28
stress --cpu 2 --vm 1 --vm-bytes 1G --timeout 120s &
29. Storage driver
●
Mechanizm zarządzania danymi wewnątrz kontenerów i
obrazów
●
Dostępnych jest kilka implementacji, w zależności od wersji
Dockera oraz systemu operacyjnego hosta
●
Docker przedstawia posortowaną listę rekomendowanych
implementacji:
Select a storage driver
29
30. Wolumeny
Dane wewnątrz kontenerów są zarządzane przez Docker
Dane współdzielone/trwałe powinny być zarządzane
bezpośrednio przez system plików hosta
▪ Wydajność (storage driver)
▪ Przenaszalność
▪ Współdzielenie
▪ Bezpieczeństwo
30
34. Obrazy kontenerów
Jeśli obraz nie jest dostępny lokalnie, Docker szuka obrazu
w repozytorum DockerHub
https://hub.docker.com/
Manualne pobranie obrazu:
34
docker pull NAZWA_OBRAZU
37. Obrazy kontenerów
Wczytanie pliku i utworzenie z niego obrazu systemu:
Wczytanie obrazu Docker
37
docker import PLIK.tar
docker load -i PLIK.tar
38. Ćwiczenie 6 – 10 minut
1) Zapisać stan kontenera jako obraz o nazwie httpd:warsztat
2) Wyeksportować powyższy obraz do pliku
3) Usunąć obraz httpd poleceniem:
4) Wczytać obraz z pliku
Podpowiedź:
Nie można usunąć obrazu, jeśli istnieją uruchomione z
niego kontenery.
38
docker rmi OBRAZ
39. Dockerfile
Dockerfile - plik zawierający definicję obrazu
1) Obraz źródłowy
2) Lista komend do wykonania podczas tworzenia obrazu
3) Komendy do automatycznego uruchomienia
4) Udostępnione porty
5) Wolumeny danych
39
40. Dockerfile - uruchomienie
Uruchomienie w katalogu z plikiem „Dockerfile”
Zazwyczaj kontekst to aktualny katalog
Kontekst – tylko niezbędna zawartość!
40
docker build KONTEKST
docker build .
42. Dockerfile - składnia
Polecenie uruchamiające komendy w trakcie tworzenia
obrazu
42
RUN KOMENDA
RUN ["KOMENDA", "PARAM1", "PARAM2"]
43. Dockerfile - składnia
Domyślne polecenie które zostanie uruchomione podczas
tworzenia kontenera:
Tylko ostatnie polecenie jest efektywne!
43
CMD KOMENDA
CMD ["KOMENDA", "PARAM1", "PARAM2"]
45. Dockerfile - składnia
Kopiowanie pliku z kontekstu do kontenera
Zmiana katalogu dla kolejnych poleceń
45
COPY CO_SKOPIOWAĆ MIEJSCE_DOCELOWE
WORKDIR /katalog
47. Dockerfile - oficjalny przykład
Źródło: Docker Labs - NodeJS application
47
FROM node:4.4.5
COPY . /app
WORKDIR /app
RUN npm install
CMD ["npm","start"]
48. Ćwiczenie 7 – 30 minut
1) Stworzyć Dockerfile dla MongoDB
2) Stworzyć obraz z MongoDB
3) Uruchomić kontener z MongoDB
4) Wykorzystać obraz centos
5) Plik z binariami dla MongoDB:
/root/mongodb-linux-x86_64-3.4.10.tgz
Dokumentacja instalacji MongoDB
48
49. Ćwiczenie 7 – 30 minut
Mongodb – części składowe
Uruchomienie serwera:
Uruchomienie Mongo Shell
49
mongod
mongo
50. Ćwiczenie 7 – 30 minut
Użyć obrazu centos
1) Skopiować i rozpakować binaria MongoDB
2) Dodać lokalizację binariów do zmiennej PATH
3) Utworzyć volumen /data/db
4) Uruchomić kontener w trybie interaktywnym
5) Uruchomić serwer MongoDB w tle - „mongod &”
6) Uruchomić konsolę MongoDB - „mongo”
7) W konsoli wpisać „db”, co zweryfikuje połączenie
50
51. Komunikacja ze światem
zewnętrznym
Udostępnienie i mapowanie portów
Możliwość podania zakresu, np.
Dockerfile - polecenie EXPOSE – tylko jako dokumentacja!
51
docker run -p [IP]:[PORT_HOSTA]:PORT_KONTENERA …
docker run -p 8080-8090:8080-8090
52. Ćwiczenie 8 – 10 minut
Uruchomić kontener MongoDB o nazwie „mongo_server”
z wystawionym portem domyślnym: 27017.
Połączyć się do MongoDB z hosta.
Mongo Shell jest zainstalowane na hoście.
52
53. Komunikacja kontenerów
Stare podejście – linki
Link pomiędzy kontenerami pozwala na komunikację
sieciową korzystając z nazwy kontenera jako nazwy
sieciowej
Utworzenie linku
53
docker run --link INNY_KONTENER:ALIAS ...
54. Komunikacja kontenerów
Nowe podejście – Docker networks
●
Wykorzystanie niezależnych sieci
●
Kontenery można podłączać do sieci
●
Wiele kontenerów podłączonych do wielu sieci
●
Kontenery komunikują się korzystając ze swoich nazw
54
55. Komunikacja kontenerów
Nowe podejście – Docker networks
Wszystkie kontenery podpięte do jednej sieci mogą się
komunikować
●
Kontenery można podłączać do sieci
●
Trzy sieci dostępne automatycznie:
– bridge - domyślna
– none – brak zdefiniowanej komunikacji
– host – współdzielenie sieci z hostem
55
58. Ćwiczenie 9 – 15 minut
1) Utworzyć nową sieć o nazwie „mongo”
2) Podłączyć kontener mongo_server do sieci
3) Uruchomić nowy kontener (klienta) podłączony do sieci.
4) Kontener (klienta) w trybie interaktywnym.
5) Połączyć się z serwerem:
58
mongo mongo_server:27017
59. Docker Compose
●
Dockerfile - tworzenie pojedynczego obrazu
●
Docker compose – uruchomienie wielu kontenerów
●
Komenda CLI „docker-compose”
●
Konfiguracja za pomocą pliku „docker-compose.yml”
59
60. Docker Compose
Polecenia najlepiej wykonywać w katalogu z plikiem yml.
Uruchomienie
Zatrzymanie
60
docker-compose up
docker-compose down
61. Docker Compose
Elementy definiowane w pliku konfiguracyjnym:
●
services – usługi, kontenery które mają być uruchomione
●
networks – sieci, które mają być utworzone
●
volumes - wolumeny, które mają być utworzone
Specyfikacja
https://docs.docker.com/compose/compose-file/
61
63. Docker Compose
●
Domyślnie tworzona jest sieć „myapp_default”
●
Domyślnie kontenery są podłączane do powyższej sieci
63
networks:
NOWA_SIEĆ:
driver: bridge
ISTNIEJĄCA_SIEĆ:
external:
name: wcześniej-utworzona-sieć
64. Ćwiczenie 10 – 40 minut
Za pomocą Compose uruchomić mysql i wordpress.
Najlepiej korzystać z dokumentacji docker-compose
Wykorzystać dostępne obrazy:
●
mysql:5.7
●
Wordpress
Dodatkowo – zainstalować phpmyadmin.
64
65. Retrospekcja
1) Instalacja i konfiguracja Dockera.
2) Docker – kilka definicji.
3) Czym jest Docker? Dlaczego go używać?
4) Kontenery – koncepcja, uruchamianie, usługi.
5) Wolumeny.
6) Obrazy kontenerów – definiowanie, tworzenie, zarządzanie.
7) Komunikacja pomiędzy kontenerami i światem zewnętrznym.
8) Docker Compose.
9) Dyskusja.
65
67. Szkolenie dedykowane dla Ciebie
67
Interesuje Cię tematyka warsztatu?
Zapoznaj się z programem szkolenia Sages:
• Wprowadzenie do technologii Docker
Dla uczestników dzisiejszego warsztatu zniżka na to
szkolenie w wysokości 35%
70. Dyskusja
1) Docker Swarm
2) Alternatywy dla Dockera
3) Problemy z korzystaniem z kontenerów
4) Docker na inne platformy – ARM
5) Docker a obliczenia na kartach graficznych
6) Bezpieczeństwo
7) Przykłady użycia z mojego doświadczenia
8) Dyskusja.
70