Docker to rozwiązanie typu PaaS. Wszedł przebojem na rynek w 2013 roku i stał się najpopularniejszym rozwiązaniem obecnie do konteneryzacji aplikacji. Umożliwia zamrożenie stanu aplikacji za pomocą serii komend i odtworzenie jej na dowolnym innym sprzęcie, który posiada zainstalowanego Dockera.

docker platforma do konteneryzacji

Docker posiada prosty język deklaratywny

Większość osób wykorzystuje Dockera do odtwarzania wersji swojego oprogramowania w tym samym stanie na dowolnym innym komputerze. Obrazy dockerowe tworzy się za pomocą plików Dockerfile. Pliki te wykorzystują takie instrukcje jak:

  • FROM
  • RUN
  • CMD
  • ENTRYPOINT
  • VOLUME
  • WORKDIR
  • COPY
  • EXPOSE

 

FROM python:3.9

ENV PYTHONUNBUFFERED 1

RUN apt-get update

# Pozwala dockerowi na zapamiętywanie zależności w naszej aplikacji
COPY ./requirements.txt requirements.txt
COPY ./requirements requirements
RUN pip install -r requirements.txt

# Dodaj naszą aplikację do kontenera
COPY . code
WORKDIR code
RUN python manage.py collectstatic --noinput

CMD ["sh", "-c", "gunicorn app.wsgi -b :8000 --log-file -"]

To tylko niektóre z nich i najbardziej popularne. Dzięki nim możemy pobrać inny kontener stworzony przez innego użytkownika wykorzystując FROM, skopiować dane za pomocą COPY z lokalnego źródła plików czyli własnego komputera, wykonać serię komend za pomocą RUN. Każda z komend stworzy inkrementacyjnie kolejne warstwy kontenera dockerowego. Najciekawsze jest to, że przy ponownym budowaniu kontenera i zmianie komendy RUN, cała poprzednia seria komend jest odpowiednio zapamiętana. Dzięki temu po drobnych zmianach kontenery potrafią się budować naprawdę szybko. Na samym końcu możemy ustalić CMD który będzie uruchamiany podczas startu kontenera i tym może być np. skrypt uruchamiający serwer webowy.

 

Czy szukasz wykonawcy Docker ?
logo

Wiersz poleceń Docker pozwala na zaawansowane operacje na kontenerach

Za pomocą interfejsu Docker możemy wykonać operacje takie jak budowanie kontenera, czy też uruchomienie go. Możemy zalogować się do innych dostarczycieli usług Docker i wypchnąć do nich zbudowany kontener. Możemy wersjonować nasze kontenery tak by w krytycznym momencie móc powrócić do jego starszej wersji.

docker login
docker build -t [username/]<image-name>[:tag] <dockerfile-path>
docker push [registry/][username/]<image-name>[:tag]

Całość tego rozwiązania pozwala na nowoczesne budowanie oprogramowania i szybką wymianę najlepszych wzorców. Większość dostarczycieli usług open-source posiada gotowe zoptymalizowane wersje swojego oprogramowania w postaci plików Dockerfile, dzięki temu możemy szybko sprawdzić je w sposób wyizolowany i niezależny od naszego oprogramowania. Trzeba pamiętać że kontenery dockerowe są od siebie niezależne i posiadają niezależny od siebie system plików. Jeżeli na to nie pozwolimy to nie dzielą ze sobą żadnych plików. Unikamy dzięki temu konfliktów wersji i możemy się skupić na tworzeniu oprogramowania wysokiej jakości.

SPRAWDŹ SWOJĄ WIEDZE Z TEMATU docker

Pytanie

 1/5

Co to jest Docker?

Jakie są zalety korzystania z Docker?

Co to jest obraz Docker?

Jakie narzędzia są niezbędne do pracy z Docker?

Co to jest Dockerfile?

Docker Compose – orkiestracja wielu kontenerów

Docker Compose to narzędzie umożliwiające definiowanie i zarządzanie wielokontenerowymi aplikacjami w sposób uproszczony i czytelny. Wykorzystuje plik konfiguracyjny w formacie YAML, w którym można określić, jakie usługi (kontenery) są wymagane do działania aplikacji, jakie zależności między nimi istnieją oraz jakie zasoby powinny być przydzielone. Dzięki temu można w łatwy sposób uruchamiać całe środowiska aplikacyjne jednym poleceniem, co znacząco przyspiesza proces konfiguracji i wdrażania.

 

Docker Compose sprawdza się szczególnie dobrze w środowiskach deweloperskich, gdzie często potrzebujemy uruchomić kilka współpracujących ze sobą usług, takich jak baza danych, serwer aplikacyjny czy system kolejkowania wiadomości. Zamiast uruchamiać każdy kontener osobno i ręcznie konfigurować ich połączenia, można zdefiniować całą strukturę w jednym miejscu i zapewnić jej spójność.

 

Kolejną zaletą Docker Compose jest łatwość przenoszenia konfiguracji między różnymi środowiskami – lokalnym, testowym i produkcyjnym. Dzięki temu zespoły programistyczne mogą uniknąć problemów wynikających z różnic w konfiguracjach i upewnić się, że aplikacja działa identycznie niezależnie od miejsca uruchomienia. W połączeniu z innymi narzędziami, takimi jak Docker Swarm czy Kubernetes, Docker Compose może również stanowić pierwszy krok w kierunku automatycznej orkiestracji aplikacji w większych systemach rozproszonych.

Nasza oferta

Powiązane artykuły

Zobacz wszystkie artykuły