‫Jeśli rozejrzysz się po Internecie pod kątem definicji kontenera, często zobaczysz ludzi
‫porównujących pojemniki z maszynami wirtualnymi.
‫To prawda, że są pewne podobieństwa, ale jest tak wiele rzeczy, które po prostu nie są takie same.
‫Chcę, abyśmy zrobili kopię zapasową i powiedzmy, że nie porównujemy ich nawet z maszynami wirtualnymi. Ponieważ tak naprawdę to
‫tylko proces. Są to procesy
‫uruchomione na twoim systemie operacyjnym, w naszym przypadku Linux. Rzućmy okiem, ponieważ bardzo łatwo jest zrozumieć koncepcję, która
‫jest tak naprawdę tylko ograniczonym procesem w naszym systemie operacyjnym hosta i niczym podobnym do wirtualnej maszyny.
‫Uruchommy bazę danych Mongo.
‫Nazwiemy to mongo. Będziemy je uruchamiać w tle.
‫I używamy obrazu Mongo.
‫W porządku. Widzimy, że działa, a Docker ma także coś, co nazywa
‫się docker top, co pozwala mi wyświetlić procesy, które są uruchomione wewnątrz określonego kontenera.
‫Zobaczymy, że mamy pojedynczy proces zwany mongodą.
‫Możesz zobaczyć PID, który jest jego identyfikatorem procesu. Możemy to również zrobić z hosta. Ponieważ jest to po
‫prostu proces działający na naszym
‫systemie operacyjnym, każde narzędzie hosta, którego użyłbym do obejrzenia procesów, zobaczy ten proces.
‫Możemy na przykład użyć listy procesów. Mam zamiar wymienić wszystkie z nich w systemie. Zobaczysz tutaj, jeśli przeszukuję,
‫jeden z nich nazywa się mongodą. Zauważysz nawet, że działa on pod innym
‫identyfikatorem procesu niż reszta systemu.
‫A to tylko dzięki warstwom bezpieczeństwa, o których będziemy rozmawiać z kontenerami i jak są one
‫nieco inne niż zwykłe procesy uruchomione na hoście.
‫Widać wyraźnie, że jest to proces na hoście.
‫Nie ukrywa się w wirtualnej maszynie, do której nie mamy dostępu.
‫Jest tuż przed nami.
‫Jeśli zatrzymam ten
‫kontener, możesz zrobić dok ps. Zobaczysz, że nie działa.
‫Możesz zrobić najlepsze mongo w doku.
‫W rzeczywistości nic nam to nie da, ponieważ kontener nie działa.
‫I jeśli zrobimy ps aux, i znowu szukamy
‫mongo,
‫nie zobaczymy niczego podkreślonego na tej liście. Właśnie szukam w moim terminalu.
‫Łatwiejszym sposobem na zrobienie
‫tego byłoby zrobienie ps aux, a następnie użycie grep, które jest narzędziem filtrującym, które będzie przeglądać dane wyjściowe, i możemy powiedzieć, żeby szukał
‫słowa mongo.
‫Jedyne, co faktycznie znajdzie to polecenie, które właśnie wykonuję, by wyszukać słowo
‫mongo.
‫Wymienia to. Spodziewalibyśmy się
‫zobaczyć tutaj inne polecenie,
‫kolejne wyjście procesu, gdyby rzeczywiście działało. Możemy ponownie zacząć ponownie, mongo start dockera, ponieważ ten kontener nadal
‫tam był, po prostu nie
‫działa w tle, trochę jak zatrzymany proces. Możemy ponownie zrobić doker ps i znowu będzie działać.
‫Możemy ponownie wykonać mongo w docku i zobaczyć, że w kontenerze działa jeszcze jeden proces.
‫Po prostu zaczęło się nowe.
‫To tylko sześć sekund, jak możemy zobaczyć tutaj.
‫Jeśli zrobimy ps aux monp grep, zobaczysz, że widzę teraz proces mongody.