Jeżli zawartość różni się u kogoś od tego co pokazuje Jakub i wygląda tak: - /blob - index.json - manifest.json - oci-layout - repositories To znaczy, że (docker save) zapisał obraz z layoutem OCI, u mnie właśnie tak było, mam wersje v26 (orbstack)(macos) Można taki obraz przekonwertować na format Docker v2 aby struktura była tak jak na filmiku. Do tego można użyć (skopeo)
Nie no spoko. Uruchomiłem amatorsko kilka kontenerów, ale dla mnie mówisz w obcym języku :) Braki w linuxie mam ogromne :) I tak lubię Cię słuchać (nawet jeśli niewiele rozumiem) :D
To zadanie można na wiele sposobów wykonać. Używając grepa, dd, gzip, base64, sed itp. To jest Linux - jedno zadanie można wykonać na wiele sposobów :)
@@uwteamorg wiem że przejęzyczenie bo z dalszej części wynika, że wiesz o czym mówisz ;) Natomiast ponieważ jest to kluczowy aspekt dla zrozumienia idea rozwiązania to pozwoliłem sobie sprostować. Uwaga poboczna jest taka, że wiem że to tylko szybki dzesiecio minutowy filmik i nie jest to kurs dockera, ale mam wrażenie, że filmik miałby większą wartość edukacyjną jakbyś w miejscu gdzie się przejęzyczasz wyjaśnił chociaż pobieżnie ten niuans.
Nie wiem co w tym filmie jest po 0:53:00 ale wystarczy odpalić cd /tmp echo "version=6" > config docker run -v /tmp/config:/app/config:ro -it unknow/wywrotka:latest
@@uwteamorg nie no spoko generalnie, ale poziom widać, że jest zdecydowanie wyższy niż podstawowy. Coś ogarniam, na tyle żeby postawić i skonfigurować swoje instancje dociera, ale tutaj było kilka poziomów, wyżej, ale.to nie znaczy, ze to jest złe, może nawet dobre, powinno motywować 🤝
@StraightBar to jest jedna z najlepszych form tutoriali, podstawy sobie wszędzie wyguglujesz albo zapytasz Czata GPT, tutaj masz całkiem realny przypadek, gdzie ktoś coś wyrzeźbił, a Ty musisz się wspiąć na wyżyny kreatywności, żeby zrozumieć co tam się odwala i to naprawić. Przez kilka lat pracy niejednokrotnie miałem takie przypadki, bo prowizorka przecież żyje najdłużej 😅
wydaje mi się, że są to podstawy - zostały użyte podstawowe polecenie dockerowe oraz podstawowa wiedza obrazach i kontenerach - że trzeba entrypoint czasami zmieniać, wolumeny instalować, że nie ma czasami powstawowych cli, że istnieje busybox, że można użyć cp, export oraz save żeby pogrzebać w środku
1) na zdalnych serwerach debugując cudze aplikacja najczęściej nie masz dostępu do Docker Desktop 2) uczenie ludzi wielu różnych sposobów na wykonanie jednej akcji nie jest złe. Twój sposób za $5 jest OK, a mój za $0 też jest OK.
Można do tego dojść w inny sposób: mkdir kontener cd kontener id=$(docker create unknow/wywrotka:latest) docker export $id -o contener.tar tar xf contener.tar
Lepiej sobie podmontować własnego "busyboxa" przy docker run przez "-v" i sobie go odpalić tak jak chcesz. Lepsze niż kombinowanie jak na filmie. Film powinien pokazywać jak debugować namespace na linuxie - a nie komend dockera
@@uwteamorg kilka lat już siedzę w Linuxie, ale akurat z busybox pierwszy raz się spotkałem i powiem że aż się uśmiechąłem pod nosem jakie to jest proste i zaje*iste :) dzięki Unknow.
@@piotr780 Nie na wypadek gdyby usunięto tylko zamiast (a właściwie "w"): podman run -it --rm alpine / # ls -lah /bin/sh lrwxrwxrwx 1 root root 12 Jul 22 14:36 /bin/sh -> /bin/busybox Busy box jest popularny w rozwiązaniach wbudowanych np openwrt. Fragment z wiki openwrt: "BusyBox is used for several system utilities in OpenWrt like ash shell, cp, ls, echo, ping and many others. It provides tiny replacements with fewer options for most of the utilities from GNU Core Utilities, GNU Inetutils and other essential tools like gzip. All this utilities are compiled as “applets” into a single binary file /bin/busybox."
Świetny materiał! Bardzo ci dziękuję 😊
Jeżli zawartość różni się u kogoś od tego co pokazuje Jakub i wygląda tak:
- /blob
- index.json
- manifest.json
- oci-layout
- repositories
To znaczy, że (docker save) zapisał obraz z layoutem OCI, u mnie właśnie tak było, mam wersje v26 (orbstack)(macos)
Można taki obraz przekonwertować na format Docker v2 aby struktura była tak jak na filmiku.
Do tego można użyć (skopeo)
Jeśli masz pytania do tego, co pokazałem, to zadaj je w komentarzach ⬇
Nie no spoko. Uruchomiłem amatorsko kilka kontenerów, ale dla mnie mówisz w obcym języku :) Braki w linuxie mam ogromne :) I tak lubię Cię słuchać (nawet jeśli niewiele rozumiem) :D
Dzięki za film
docker logs -t też da czas a LogPath z inspect bywa pusta jak coś jest nie tak :]
A jak debugować flatpaka?
Jest tez takie sprytne narzedzie wagoodman/dive, ktore pozwala na przegladanie warstw obrazkow, tez bardzo pomocne przy debugowaniu
@@wojtek-g1 wiesz lepiej pokazać losowe brutowanie binarek /bin/bash itp
Fajne!!!
🥰😍🤩
🥰😍🤩
🥰😍🤩
🥰😍🤩
🥰😍🤩
W kontenerze jest grep dostępny, także nawet nie trzeba busy boxa używać.
To zadanie można na wiele sposobów wykonać. Używając grepa, dd, gzip, base64, sed itp.
To jest Linux - jedno zadanie można wykonać na wiele sposobów :)
5:45 s/obrazie/systemie plików instancji kontenera/
słuszna uwaga - przejęzyczenie z mojej strony.
@@uwteamorg wiem że przejęzyczenie bo z dalszej części wynika, że wiesz o czym mówisz ;)
Natomiast ponieważ jest to kluczowy aspekt dla zrozumienia idea rozwiązania to pozwoliłem sobie sprostować.
Uwaga poboczna jest taka, że wiem że to tylko szybki dzesiecio minutowy filmik i nie jest to kurs dockera, ale mam wrażenie, że filmik miałby większą wartość edukacyjną jakbyś w miejscu gdzie się przejęzyczasz wyjaśnił chociaż pobieżnie ten niuans.
Nie wiem co w tym filmie jest po 0:53:00 ale wystarczy odpalić
cd /tmp
echo "version=6" > config
docker run -v /tmp/config:/app/config:ro -it unknow/wywrotka:latest
Nie zadziała przy dockerze z snapa.
Skrypt w kontenerze niepoprawnie rozpoznaje typ danych wejściowych typu 'string' i wyświetla poprawną odpowiedź.
Powinno być if ! [$a -eq $b];
tak to jest z odziedziczonymi kontenerami
Debugowanie w 10 minut... dla zaawansowanych 😅
Nie chciałem takich absolutnych podstaw pokazywać, więc skupiłem się na lekkim kombinowaniu :)
@@uwteamorg nie no spoko generalnie, ale poziom widać, że jest zdecydowanie wyższy niż podstawowy. Coś ogarniam, na tyle żeby postawić i skonfigurować swoje instancje dociera, ale tutaj było kilka poziomów, wyżej, ale.to nie znaczy, ze to jest złe, może nawet dobre, powinno motywować 🤝
@StraightBar to jest jedna z najlepszych form tutoriali, podstawy sobie wszędzie wyguglujesz albo zapytasz Czata GPT, tutaj masz całkiem realny przypadek, gdzie ktoś coś wyrzeźbił, a Ty musisz się wspiąć na wyżyny kreatywności, żeby zrozumieć co tam się odwala i to naprawić. Przez kilka lat pracy niejednokrotnie miałem takie przypadki, bo prowizorka przecież żyje najdłużej 😅
wydaje mi się, że są to podstawy - zostały użyte podstawowe polecenie dockerowe oraz podstawowa wiedza obrazach i kontenerach - że trzeba entrypoint czasami zmieniać, wolumeny instalować, że nie ma czasami powstawowych cli, że istnieje busybox, że można użyć cp, export oraz save żeby pogrzebać w środku
nie chcę psuć biznesu, ale w Docker Desktop za 5$/mc jest dostęp do docker debug który montuje shell w każdym kontenerze
1) na zdalnych serwerach debugując cudze aplikacja najczęściej nie masz dostępu do Docker Desktop
2) uczenie ludzi wielu różnych sposobów na wykonanie jednej akcji nie jest złe. Twój sposób za $5 jest OK, a mój za $0 też jest OK.
Można do tego dojść w inny sposób:
mkdir kontener
cd kontener
id=$(docker create unknow/wywrotka:latest)
docker export $id -o contener.tar
tar xf contener.tar
O! Też ciekawe rozwiązanie - utworzenie kontenera bez uruchamiania go (więc skrypt nie zrobi samozniszczenia) 🙂👍
sleep infinity ;-)
Lepiej sobie podmontować własnego "busyboxa" przy docker run przez "-v" i sobie go odpalić tak jak chcesz. Lepsze niż kombinowanie jak na filmie.
Film powinien pokazywać jak debugować namespace na linuxie - a nie komend dockera
metod na wykonanie jednej akcji na Linuksie przeważnie jest kilka/kilkanaście. Film pokazuje dokładnie to, co chciałem aby pokazał.
tu właśnie chodzi o kombinowanie :P chodzi o poszerzanie horyzontów, a niekoniecznie prostą drogę do celu
@@uwteamorg kilka lat już siedzę w Linuxie, ale akurat z busybox pierwszy raz się spotkałem i powiem że aż się uśmiechąłem pod nosem jakie to jest proste i zaje*iste :) dzięki Unknow.
@@mateuszcichocki1779 w alpine to jest, pewnie na wypadek gdyby usunięto sh, a alpine to częsty os w dockerach
@@piotr780 Nie na wypadek gdyby usunięto tylko zamiast (a właściwie "w"):
podman run -it --rm alpine
/ # ls -lah /bin/sh
lrwxrwxrwx 1 root root 12 Jul 22 14:36 /bin/sh -> /bin/busybox
Busy box jest popularny w rozwiązaniach wbudowanych np openwrt. Fragment z wiki openwrt:
"BusyBox is used for several system utilities in OpenWrt like ash shell, cp, ls, echo, ping and many others. It provides tiny replacements with fewer options for most of the utilities from GNU Core Utilities, GNU Inetutils and other essential tools like gzip.
All this utilities are compiled as “applets” into a single binary file /bin/busybox."