Docker
2 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.
Powiązane artykuły
Z jakich usług AWS warto skorzystać przy tworzeniu stron internetowych?
8 mar 2022
Amazon Web Services (AWS) to chyba jedna z najważniejszych platform chmury obliczeniowej dostępnych na rynku. Oferuje ona szeroki zakres usług, które pomagają w tworzeniu, rozwijaniu i utrzymaniu stron internetowych.

Jak wykorzystać webhook w aplikacji webowej
7 cze 2023
Webhooki są narzędziem umożliwiającym aplikacjom webowym automatyczne pobieranie i przetwarzanie danych zewnętrznych źródeł. W tym artykule omówimy, jak wykorzystać webhooki w celu automatyzacji działania aplikacji oraz jak dobrać odpowiednie narzędzia do tego celu.
Dlaczego gruby klient to dobry wybór dla Twojej aplikacji?
6 cze 2023
Dlaczego gruby klient to dobry wybór dla Twojej aplikacji? Dowiedz się, co to znaczy, dlaczego warto wybrać takie podejście i jakie korzyści może przynieść. Odkryj również, jakie są najważniejsze cechy aplikacji z grubym klientem i jak działa architektura SPA.
Zobacz wszystkie artykuły