Skip to content

Linux/Docker/Grep

1.1. Co jest uruchomione? docker ps docker ps -a

1.2. Logi kontenera docker logs <nazwa_kontenera> docker logs -f <nazwa>

1.3. Szczegóły konfiguracji docker inspect docker inspect | jq .`

1.4. Wchodzisz do środka docker exec -it <nazwa> bash albo docker exec -it <nazwa> sh

1.5. Reset kontenera docker compose down docker compose up -d

1.6. Twardy reset (czyści dane!)

(jeśli masz pewność, że dane nie są potrzebne — inaczej prosisz o backup)

docker compose down -v docker volume ls docker volume rm <nazwa_wolumenu>

2.1. Host → kontener curl http://localhost:xxxx nc -vz localhost xxxx

2.2. Kontener → kontener docker exec -it ping docker exec -it nc -vz

2.3. DNS w dockerze docker exec -it getent hosts <nazwa_kontenera>

2.4. Sprawdzenie otwartych portów w systemie ss -tulpn | grep

2.5. Firewall ufw status iptables -L -n

3.1. Procesy ps aux | grep <coś>

3.2. Co zajmuje RAM / CPU top htop

3.3. Dysk df -h du -sh /var/log/\*

3.4. Uprawnienia ls -la stat <plik>

3.5. Systemd – sprawdzasz czy usługa żyje systemctl status <usługa> journalctl -u <usługa> --no-pager

SELECT session_id, login_name, host_name, program_name, status, cpu_time, memory_usage, reads, writes, last_request_start_time, last_request_end_time, database_id FROM sys.dm_exec_sessions WHERE database_id = DB_ID('TwojaBaza'); - Sprawdz userow i sesje

KILL 57; - ubicie sesji

ALTER DATABASE [TwojaBaza] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; - ustawienie w single user

ALTER DATABASE [TwojaBaza] SET MULTI_USER; - multi user

ALTER DATABASE [TwojaBaza] SET MULTI_USER WITH ROLLBACK IMMEDIATE; - to co wyzej ale jak to wyzej nie dziala bo blokuje sie

SELECT s.session_id, s.login_name, s.host_name, s.host_process_id, -- to jest PID procesu klienta s.status, s.program_name, DB_NAME(s.database_id) AS database_name FROM sys.dm_exec_sessions s WHERE s.database_id = DB_ID('TwojaBaza'); - host process to pid

USE master; GO ALTER DATABASE TwojaBaza SET SINGLE_USER; - uzycie mastera, jak inne nie dzialaja forcuje

EXEC sp_who2; - info o sesjach — Lub: EXEC sp_who2 active; - tez info o sesjach

4.1. Próba połączenia lokalnego psql -U <użytkownik> <baza>

4.2. Próba połączenia z hosta psql -h localhost -U

4.3. Co nasłuchuje ss -tulpn | grep 5432

4.4. Sprawdzenie userów i baz (po wejściu do psql) \du \l

4.5. Sprawdzenie błędów postgres cat /var/log/postgresql/postgresql*.log docker logs postgres

4.6. Sprawdzenie pg_hba.conf cat /var/lib/postgresql/data/pg_hba.conf

5.1. Czy aplikacja wstaje? docker logs backend journalctl -u backend

5.2. Test lokalnego endpointu curl -v http://localhost:/

5.3. Sprawdzenie konfiguracji środowiska docker exec -it backend printenv

5.4. Sprawdzenie uprawnień do plików docker exec -it backend ls -la /app

5.5. Jeśli to .NET dotnet —info dotnet ef database update

5.6. Jeśli to Node npm ls npm audit

6.1. Szukasz błędów w logach grep -i "error" -n log.txt grep -i “fatal” -n log.txt grep -i “exception” -n log.txt grep -i “permission” -n log.txt`

6.2. Wycinek 100 ostatnich linii tail -100 log.txt

6.3. Logi aplikacji z docker-compose docker compose logs --tail=200 --follow

Gdy coś nie działa:

  • Wywalasz 80% konfiguracji.

  • Uruchamiasz tylko jeden kontener.

  • Sprawdzasz najprostsze połączenie.

  • Dopiero zaczynasz dokładać kolejne elementy.

To pozwala od razu ustalić, czy uszkodzona jest:

  • infrastruktura

  • sieć

  • baza

  • aplikacja

  • konfiguracja środowiska

📡 8. Diagnostyka narzędziowa cURL — twoje podstawowe narzędzie curl -v http://... curl -I http://...

netcat — sprawdzenie portu nc -vz host port

dig / nslookup — DNS dig host nslookup host

9. Końcowy krok: Czyszczenie cache / locków

Section titled “9. Końcowy krok: Czyszczenie cache / locków”

To używasz, gdy wszystko wygląda logicznie, a i tak nie działa.

Docker docker system prune -a

Linux rm -f /var/run/\*.pid

Postgres rm -f /var/lib/postgresql/data/postmaster.pid

10. Jeśli nie masz pewności — ZAWSZE sprawdzasz warstwę niżej

Section titled “10. Jeśli nie masz pewności — ZAWSZE sprawdzasz warstwę niżej”
  • Backend nie działa → sprawdzasz bazę.
  • Baza nie działa → sprawdzasz proces.
  • Proces nie działa → sprawdzasz OS.
  • OS nie działa → sprawdzasz sprzęt.