Docker
3 minuty czytania
Docker to platforma, która pozwala na konteneryzację aplikacji. Konteneryzacja to proces polegający na izolowaniu aplikacji od środowiska, w którym jest uruchamiana, dzięki czemu aplikacja może być uruchamiana na różnych systemach operacyjnych bez potrzeby modyfikowania kodu.
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 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.
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
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
Web development
Dowiedz się więcejMobile development
Dowiedz się więcejE-commerce
Dowiedz się więcejProjektowanie UX/UI
Dowiedz się więcejOutsourcing
Dowiedz się więcejPowiązane artykuły
Problem trzech ciał w testowaniu oprogramowania: Rozwiewamy wątpliwości i analizujemy trudności
4 lut 2025
Problem Trzech Ciał nie jest jedynie dylematem znanym z astronomii. W informatyce stanowi on fundamentalne wyzwanie w testowaniu oprogramowania, jakim już niejednokrotnie musieli zmierzyć się developerzy. W dzisiejszym artykule zbadamy trudności, które niesie ze sobą, oraz pokażemy drogi do skutecznego rozwiewania wątpliwości.

Impressum – dlaczego twoja strona internetowa może go potrzebować
18 sty 2025
Czy kiedykolwiek zastanawiałeś się, co to jest Impressum? To wymóg prawny, który może być tajemniczy dla wielu osób. Występując na stronach internetowych, odgrywa kluczową rolę i nie jest czymś, co można zignorować. Czy twoja może go potrzebować? Przeczytaj więcej, aby odkryć odpowiedź.
DNS CNAME: Co to jest i jak działa rekord CNAME w systemie nazw domen
15 sty 2025
Czy kiedykolwiek zastanawialiście się nad tym, jak działa DNS, a w szczególności rekord CNAME? Zapewne tak, gdyż są one kluczowym elementem większości konfiguracji stron internetowych. W tym artykule postaramy się wyjaśnić ich rolę i działanie, a także pokazać, jak można je efektywnie wykorzystać w systemie nazw domen.
Trunk Based Development - zagadnienia i praktyki rozwoju oprogramowania
14 sty 2025
Trunk Based Development (TBD) to model rozwoju oprogramowania, zyskujący na popularności dzięki swoim atutom. Polega na ciągłym commitowaniu kodu do głównego drzewa (tzw. trunk). To podejście przynosi skuteczność, oszczędzając czas i zmniejszając ryzyko błędów. W naszym artykule omówimy główne założenia TBD, jego wiele zalet oraz praktyczne zasady realizacji.
Pachyderm: Poznaj rewolucję w przetwarzaniu danych i zarządzaniu przepływami pracy
11 sty 2025
Pachyderm przynosi wręcz rewolucyjne zmiany w dziedzinie przetwarzania danych i zarządzania przepływem pracy. To innowacyjne narzędzie, wykorzystujące potężną moc Docker i Kubernetes, co czyni go niezwykle elastycznym i skalowalnym rozwiązaniem. Zarówno dla niewielkich startupów, jak i dużych korporacji, Pachyderm staje się kluczem do efektywnej analizy danych.
Keylogger: Poznaj mechanizm działania i zastosowania tego narzędzia
24 gru 2024
Czy kiedykolwiek zastanawiałeś się, jak działają keyloggery? Narzędzia te, potrafiące przechwytywać każde naciśnięcie klawisza, są jedną z najbardziej inwazyjnych form naruszenia prywatności. Chociaż często kojarzone z działaniami cyberprzestępców, mają także legalne zastosowania. Czytaj dalej, aby zgłębić tajniki ich funkcjonowania i zrozumieć, jak się przed nimi zabezpieczyć.
Hosting dedykowany a współdzielony: Porównanie i wybór optymalnego rozwiązania
19 gru 2024
Rozwój firmy często wiąże się z koniecznością podjęcia decyzji o wyborze odpowiedniego hostingu. Istotne jest zrozumienie, czym różnią się od siebie hosting dedykowany i współdzielony, aby móc świadomie wybrać najbardziej optymalne rozwiązanie. Zapraszam do porównania tych dwóch usług.
Zobacz wszystkie artykuły