Docker (oprogramowanie)

Doker

Informacja
Twórca Salomon Hykes
Opracowany przez Docker, Inc. ( w )
Ostatnia wersja 20.10.7 (2 czerwca 2021)
Kaucja github.com/moby/moby
Stan projektu W aktywnym rozwoju
Napisane w Udać się
System operacyjny Linux , Microsoft Windows , macOS i Unix
Środowisko Wieloplatformowy
Rodzaj Pojemnik
Polityka dystrybucji Wolny
Licencja Licencja Apache w wersji 2.0 i licencja własnościowa
Stronie internetowej www.docker.com

Docker to darmowe oprogramowanie do uruchamiania aplikacji w kontenerach oprogramowania.

Według firmy badawczej 451 Research „Docker to narzędzie, które może spakować aplikację i jej zależności w izolowany kontener, który można uruchomić na dowolnym serwerze”. Nie chodzi tu o wirtualizację , ale o konteneryzację , lżejszą formę, która do działania opiera się na częściach maszyny hosta. Takie podejście zwiększa elastyczność i przenośność uruchamiania aplikacji, która będzie mogła działać niezawodnie i przewidywalnie na szerokiej gamie hostów, czy to na maszynie lokalnej, prywatnej lub publicznej chmurze, samej maszynie itp.

Technicznie rzecz biorąc, Docker rozszerza standardowy format kontenera systemu Linux , LXC , o wysokopoziomowe API zapewniające wygodne rozwiązanie do wirtualizacji, które uruchamia procesy w izolacji. Aby osiągnąć swoje cele, Docker używa m.in. LXC, cgroups i samego jądra Linuksa . W przeciwieństwie do tradycyjnych maszyn wirtualnych kontener Docker nie zawiera systemu operacyjnego, lecz opiera się na funkcjonalności systemu operacyjnego zapewnianej przez maszynę hosta.

Technologię kontenerów Dockera można wykorzystać do skalowania systemów rozproszonych tak, aby działały autonomicznie z pojedynczej maszyny fizycznej lub pojedynczej instancji na węzeł. Umożliwia to wdrażanie węzłów, gdy zasoby stają się dostępne, zapewniając bezproblemowe wdrażanie podobne do PaaS dla systemów takich jak Apache Cassandra , Riak lub innych systemów rozproszonych.

Przegląd

Docker umożliwia implementację kontenerów działających w izolacji za pośrednictwem API wysokiego poziomu. Zbudowany w oparciu o możliwości jądra Linux (zwłaszcza cgroups i przestrzenie nazw), kontener Docker, w przeciwieństwie do tradycyjnych maszyn wirtualnych, nie wymaga ani nie udostępnia oddzielnego systemu operacyjnego. Opiera się raczej na funkcjonalności jądra i wykorzystuje izolację zasobów (takich jak procesor, pamięć, wejścia / wyjścia i połączenia sieciowe), a także oddzielne przestrzenie nazw w celu odizolowania systemu operacyjnego, takiego jak widziana przez aplikację. Docker uzyskuje dostęp do możliwości wirtualizacji jądra Linux, albo bezpośrednio przez bibliotekę runc (dostępną od wersji Docker 0.9), albo pośrednio przez libvirt, LXC (Linux Containers) lub systemd-nspawn.

Korzystanie z platformy Docker do tworzenia kontenerów i zarządzania nimi może uprościć wdrażanie systemów rozproszonych, umożliwiając autonomiczne działanie wielu aplikacji, zadań w tle i innych procesów na pojedynczej maszynie fizycznej lub na wielu odizolowanych maszynach. Pozwala to na wdrażanie węzłów jako zasobów na żądanie, zapewniając w ten sposób platformę wdrażania w stylu PAAS i skalowalność systemów takich jak Apache Cassandra , MongoDB lub Riak , a także upraszczając tworzenie i obsługę kolejek zadań i innych systemów rozproszonych.

Pojęcie kontenera

Cel kontenera jest taki sam, jak w przypadku wirtualnego serwera dedykowanego  : hostowanie usług na tym samym serwerze fizycznym, izolując je od siebie. Jednak kontener jest mniej zamrożony niż maszyna wirtualna pod względem rozmiaru dysku i przydzielonych zasobów.

Kontener służy do odizolowania każdej usługi: serwera WWW, bazy danych, aplikacji, które mogą być uruchamiane niezależnie w ich dedykowanym kontenerze, zawierającym tylko niezbędne zależności. Każdy kontener może być połączony z innymi za pomocą sieci wirtualnych. Możliwe jest montowanie woluminów dyskowych z komputera hosta w kontenerze. Jeśli w kontenerze nie zostanie uruchomiony żaden proces, kontener zostanie zatrzymany. Czasami mówimy o wirtualizacji systemu operacyjnego: w przeciwieństwie do wirtualizacji, w której oprogramowanie emuluje różne maszyny na maszynie fizycznej, konteneryzacja emuluje różne systemy operacyjne na jednym systemie operacyjnym.

Historia

Docker jest rozwijany przez Solomona Hykesa na potrzeby wewnętrznego projektu dotCloud, francuskiej firmy działającej w ramach platformy jako usługi , przy udziale Andrei Luzzardi i Francois-Xaviera Bourleta, również pracowników dotCloud. Docker to ewolucja oparta na autorskich technologiach dotCloud, zbudowanych na projektach open source .

Docker jest dystrybuowany jako projekt open source od marca 2013.

Jest to obecnie najczęściej używany silnik konteneryzacji. Ogromną zaletą Dockera jest możliwość modelowania każdego kontenera jako obrazu, który może być przechowywany lokalnie lub w Docker Hub, miejscu publicznym, w którym wiele obrazów jest regularnie publikowanych i aktualizowanych.

W 2019 r. na konferencji DockerCon 2019 ogłoszono wersję 3 platformy Docker 2019. W listopadzie 2019 r. firma Docker sprzedała swój produkt „Docker Enterprise” firmie Mirantis i zebrała blisko 35 mln dolarów.

Integracja z innymi systemami

Integracja Dockera została wykonana z następującymi narzędziami do zarządzania infrastrukturą:

19 września 2013 r. Red Hat i Docker ogłosili współpracę w zakresie Fedory , Red Hat Enterprise Linux i Openshift. W maju 2015 r. firma Synology , producent serwerów NAS , zintegrowała platformę Docker ze swoim wewnętrznym oprogramowaniem DSM v5.2.

Bibliografia

  1. 10,20.7  " ,2 czerwca 2021(dostęp 5 czerwca 2021 )
  2. v20.10.7  " ,2 czerwca 2021(dostęp 5 czerwca 2021 )
  3. Maureen O'Gara , „  Ben Golub, który sprzedał Gluster firmie Red Hat, teraz działa dotCloud  ” , SYS-CON Media ,26 lipca 2013 r.(dostęp 9 sierpnia 2013 ) .
  4. Katherine Noyes , „  Docker: A 'Shipping Container' for Linux Code  ” , Linux ,1 st sierpień 2013(dostęp 9 sierpnia 2013 )
  5. Abel Avram , „  Docker: Automated and Consistent Software Deployments  ” , InfoQ ,27 marca 2013 r.(dostęp 9 sierpnia 2013 )
  6. Alex Williams , „  Matrix of Hell i dwa projekty open-source dla wschodzącej chmury agnostycznej  ” , TechCrunch ,28 lipca 2013 r.(dostęp 9 sierpnia 2013 )
  7. Adron Hall , „  OSCON: rozmowy, wdrożenia, architektura, Docker i przyszłość?  » , CloudAve ,31 lipca 2013 r.(dostęp 9 sierpnia 2013 )
  8. „  Docker: platforma 3.0, która w coraz większym stopniu łączy programistów z kontenerami… i Kubernetes  ” , na LeMagIT (dostęp 7 maja 2019 r. )
  9. "  Co się dzieje z Dockerem?  » , W Journal du Net ,3 lipca 2020 r.
  10. Ansible, Inc. , „  Ansible and Docker  ”, na stronie www.ansible.com (dostęp 22 lutego 2016 r. )
  11. (w) "  thoward / docker-cookbook  " na GitHub (dostęp 12 grudnia 2015 )
  12. (w) „  garethr / docker · Puppet Forge  ” na forge.puppetlabs.com (dostęp 12 grudnia 2015 )
  13. (w) „  rejestr kontenerów dokowanych  ” na www.inedo.com (dostęp 12 listopada 2017 r. )
  14. (w) "  Używanie SaltStack w aplikacji produkcyjnej do zarządzania kontenerami Docker  " na saltstack.com ,3 grudnia 2014
  15. https://github.com/philspitler/vagrant-docker
  16. (w) "  gergebashi / jenkins-docker-plugin  " na GitHub (dostęp 12 grudnia 2015 )
  17. (w) „  Tygodniowy biuletyn społeczności OpenStack (31 maja – 7 czerwca)  ” na www.openstack.org ,7 czerwca 2013(dostęp 12 grudnia 2015 )
  18. (w) "  Dokumentacja OpenSVC - Dokumentacja OpenSVC  " na docs.opensvc.com (dostęp 12 grudnia 2015 )
  19. (w) Alex Williams, „  dotCloud obraca i wygrywa duże dzięki Dockerowi, usługa w chmurze jest teraz częścią Red Hat OpenShift  ” ,19 września 2013 r.(dostęp 12 grudnia 2015 )
  20. http://www.cachem.fr/synology-dsm-5-2-duable-version-finale/ DSM v5.2

Załączniki

Powiązane artykuły

Linki zewnętrzne