Docker - co to takiego?

0

Tak na "chłopksi rozum" czym jest Docker, nie jak jest napisane w google? Czy w dokerze ( w jednym kontenerze) mogę skonfigurować sobie serwer, bazę itp i uruchomić jedynie ten kontener i uruchomi mi się wszytko? Czy źle rozumie to czym jest Docker?

15

Wiesz czym jest maszyna wirtualna? To jest takie cos co pozwala symulować wirtualne komputery na komputerze. Możesz na jednej mocnej maszynie symulować wiele wirtualnych komputerów.
Ale szybko okazało się, że ludzie chcieliby żeby ich aplikacje działały na osobnych maszynach wirtualnych, co było strasznym marnotrawstwem bo w każdej z tych maszyn wirtualnych działał osobny system operacyjny. W efekcie bardzo dużo zasobów było marnowane na identyczne systemy operacyjne działające na maszynach wirtualnych a nie na faktyczne aplikacje które miały na nich działać.
Stąd pomysł lekkich "kontenerów" które pozwalają symulować działanie aplikacji na "osobnej maszynie" jednocześnie działając pod systemem operacyjnym gospodarza. Kontener nie wirtualizuje całego systemu operacyjnego a tylko środowisko wykonania aplikacji (więc np. strukturę plików na dysku, zmienne środowiskowe etc)

0

@Shalom czyli mogę sobie skonfigurować serwer, baze danych itp na dockerze a nastenie aplikację uruchamiać w dokerze przez odpalnie jedynie kontenera?

0

Możesz. Możesz też każdą z tych aplikacji uruchomić w osobnym kontenerze.

0

Dziękuje za odp.

0

Aplikacja na dockerze sobie startuje i jest dostepna pod ip kontenera. Czy, zeby miec to dostepne z localhosta swojej maszyny trzeba po prostu zrobic jakis forwarding czy mozna to ustawic w dockedze?

0

Stąd pomysł lekkich "kontenerów" które pozwalają symulować działanie aplikacji na "osobnej maszynie" jednocześnie działając pod systemem operacyjnym gospodarza. Kontener nie wirtualizuje całego systemu operacyjnego a tylko środowisko wykonania aplikacji (więc np. strukturę plików na dysku, zmienne środowiskowe etc)

Czyli nic nowego, bo pod FreeBSD są “jails” od lat...

z punktu widzenia sysadmina kontener jest pod wieloma względami (głownie security) be

...i wcale nie są be.

0

Wiele rzeczy nie jest nowych, tylko trafia do mainstreamu.
np. Aktorzy z języków funkcyjnych itp.

0

Czy mozna jakos latwo przetestowac, pobawic sie docker swarmem lub kubernetesem?

Jakies gotowe przykladowe srodowisko czy cos?

0

Kilka sprostowań: docker to nie jest żaden mechanizm wirtualizacji (VM- ani OS-level) tylko mechanizm... paczkowania obrazów pod OS-level virtualization.
Docker może działać nad różnymi typami wirtualizacji, np. Zone w Solarisie, Jail we FreeBSD czy różnego rodzaju technologiami w Linuksie.

W Linuksie Docker ma zasadniczo jedną poważną wadę - z racji na często zmieniające się ABI kernela, ciężko mu zagwarantować, że obraz utworzony z glibc dla kernela 4.4.0 pójdzie poprawnie na 4.50. Docker stosuje tu politykę "hiperoptymizmu" i po prostu nie sprawdzając - odpala.

0

Krzywy Młot, a próbowałeś chociaż poszukać w Google czy na pałę pytasz na forum? https://docs.docker.com/engine/getstarted/

0
Dakp napisał(a):

Czy w dokerze ( w jednym kontenerze) mogę skonfigurować sobie serwer, bazę itp i uruchomić jedynie ten kontener i uruchomi mi się wszytko?

Uruchomi. Ale, powinieneś aplikację umieścić sobie w jednym kontenerze a bazę w drugim. Z własnego produkcyjnego doświadczenia odradzałbym jednak umieszczanie jakiejkolwiek bazy w kontenerze dokerowym. Pliki bazy i tak muszą być persystentnie zapisane na dysku więć musisz pobawić się w montowanie ścieżek hosta do uruchomionego kontenera, a poza tym kontenery mają Ci ułatwić deplojment aplikacji, częsty deplojment hostów bazodanowych to raczej rzadka praktyka i może być objawem źle zaprojektowanego systemu (jakiś kontrprzykład?). Także wrzucanie aplikacji bazodanowej do dokera dodaje Ci problemów nie dając żadnych korzyści.

ps. Chętnie poczytałbym o przykładzie będącym zaprzeczeniem tego co napisałem.

EDIT

Azarien napisał(a):

Stąd pomysł lekkich "kontenerów" które pozwalają symulować działanie aplikacji na "osobnej maszynie" jednocześnie działając pod systemem operacyjnym gospodarza. Kontener nie wirtualizuje całego systemu operacyjnego a tylko środowisko wykonania aplikacji (więc np. strukturę plików na dysku, zmienne środowiskowe etc)

Czyli nic nowego, bo pod FreeBSD są “jails” od lat...

Nie, to nie tak. Jails to ekwiwalent LXC, nie wiem które były pierwsze. Docker to na początku była taka nakładka na LXC mająca na celu sprawić, by kontenery były bardziej user firendly.

EDIT2
Właśnie sobie uświadomiłem, że wziąłem udział w odkopaniu tematu :D

0

Mam pytanie odnosnie hostingu linuxa pod dockera.

Czy mozna gdzies za darmo lub tanio albo okresowo potestowac na jakims hostingu linuxa do ktorego podlaczylbym sie zainstalowal dockera i deployowal w ten sposob aplikacje?

Albo juz do tego celu sa przygotowane VMki gdzies?

0

@złoty Terrorysta, a próbowałeś docker-machine z VirtualBoksem odpalić? Działa całkiem ładnie na każdej platformie.

0
winerfresh napisał(a):

@złoty Terrorysta, a próbowałeś docker-machine z VirtualBoksem odpalić? Działa całkiem ładnie na każdej platformie.

Niby tak, ale chcialem przy okazji przetestowac jakies komercyjne cloudy, zrobic taki real deployment jakbym sam chcial cos wypchnac do swiata ;)

0

To jeszcze raz odpowiem: docker-machine lub Kubernetes. Możesz też użyć CoreOS.

0

Thx. W sumie AWS EC2 rowniez dal rade.

1 użytkowników online, w tym zalogowanych: 0, gości: 1