Docker – Wprowadzenie do konteneryzacji (cz. 5)

Persistencja danych z użyciem Bind Mounts (Dev Mode)

W poprzednim wpisie poznaliśmy named volumes, które pozwalają przechowywać dane aplikacji niezależnie od kontenera. Teraz przyjrzymy się innej technice – bind mounts – szczególnie przydatnej podczas pracy deweloperskiej.


Czym są Bind Mounts?

Bind mount to sposób, w jaki możemy podłączyć katalog z naszego hosta (komputera) bezpośrednio do kontenera Dockera. Dzięki temu kontener ma dostęp do bieżących plików źródłowych i reaguje natychmiast na ich zmiany – bez konieczności ponownego budowania obrazu.


1. Przejście do katalogu aplikacji

Otwórz terminal i przejdź do katalogu, w którym znajduje się Twoja aplikacja:

cd /path/to/getting-started/app


2. Uruchomienie kontenera w trybie deweloperskim

Wykonaj polecenie:

docker run -dp 3000:3000 \
-w /app -v "$(pwd):/app" \
node:18-alpine \
sh -c "yarn install && yarn run dev"

Co oznaczają parametry?

  • -w /app – ustawia katalog roboczy kontenera na /app.
  • -v "$(pwd):/app" – tworzy bind mount, który łączy bieżący katalog hosta ($(pwd)) z katalogiem /app w kontenerze.
  • node:18-alpine – lekki obraz Node.js, na którym uruchamiamy aplikację.
  • yarn install && yarn run dev – instalacja zależności i start w trybie developerskim.

3. Podgląd logów kontenera

Aby zobaczyć logi aplikacji w czasie rzeczywistym:

docker logs -f <container-id>

<container-id> uzyskasz poleceniem:

docker ps


4. Wprowadzenie zmian w kodzie

Otwórz plik:

src/static/js/app.js

Na linii 109 zmień:

{Submitting ? 'Adding...' : 'Add item'}

na:

{Submitting ? 'Adding...' : 'Add'}


5. Podgląd zmian w przeglądarce

Dzięki bind mountowi zmiana w kodzie zostanie automatycznie odzwierciedlona w aplikacji – wystarczy odświeżyć stronę w przeglądarce na http://localhost:3000.