1. Z tak rozbudowaną umiejętnością korzystania z Google'a mgliście to widzę.
2. W stosie TCP/IP usługi są identyfikowane trójpoziomowo:
adres IP usługi (jeżeli nie specyfikuje się adresu to przyjmuje się adres 0.0.0.0, taki
catch-all),
protokół (TCP, UDP, SCTP i wiele, wiele innych) i w ramach protokołu
numer portu (liczba 1..65536, z czego porty 1..1024 są zarezerwowane dla administratora).
3. Są tzw.
znane porty (ang
well known ports), sytuacje, w których protokół i port wprost wynikają z usługi. Np HTTP to TCP/80, HTTPS to TCP/443, DNS to UDP/53 i TCP/53, itd. Oficjalną listę WKP masz zawsze w pliku
/etc/services. Dla ciekawostki: listę znanych protokołów masz w
/etc/protocols, ale nie wszystkie są obsługiwane przez Linuksa (część z nich to protokoły historyczne, już nie występujące w sieci). Dla wygody, usługi można przenieść na inny port w ramach tego samego protokołu. Na przykład zwykły użytkownik nie ma uprawnień do wystawienia serwera WWW (WKP TCP/80), bo jego port jest w zakresie dostępnym tylko dla roota. Ale może w konfiguracji serwera ustawić port, np 8000 i wtedy strony dostępne są pod adresem
http://localhost:8000 (jeżeli serwer nie działą na WKP, to trzeba podać w adresie rzeczywisty numer portu, na ogół po dwukropku za IP/FQDN)
4. Docker to nie sprawa na krótki post na forum. Wyszukaj sobie po prostu jakiś podręcznik w PDF. W wielkim skrócie - Docker zachowuje się jak maszyna wirtualna do której masz serwery z gotowymi systemami operacyjnymi (trochę jak DEB/RPM z całym systemem w jednej paczce) i "nakładanymi" na nie obrazami z konkretnymi usługami i wszystko jest konfigurowane ze skryptu. Możesz przygotować sobie receptę: np potrzebuję Debiana8 64-bitowego (paczka bazowa), na tym apache'a działającego na porcie 8888 (nakładka #1 z dodatkową konfiguracją), mysql na defaultach (nakładka #2) i na tym wszystkim puszczony WordPress (nakładka #3). To jest jeden plik tekstowy, który wpuszczony do Dockera wszystko automatycznie pościąga, poinstaluje, pokonfiguruje i uruchomi. Jak masz już skrypt i bazową konfigurację, to możesz z niego "wyrolować" (ang
rollout) jednakowe serwery dla 500 klientów paroma poleceniami.
Dobrym przykładem jest pakiet TensorFlow od Google'a: możesz oczywiście go zainstalować ręcznie, ale jest to strasznie upierdliwe (parę bibliotek do ściągnięcia ręcznie po zarejestrowaniu się w NVidii, parę pakietów Pythona instalowane PIPem a nie przez natywne pakiety systemu. Generalnie robi się w systemie chlew. Ale możesz też wydać jedno polecenie Dockera, które ściągnie przepis ze stron Google'a i na tej podstawie automatycznie zbuduje kompletny system wirtualny ze wszystkimi pakietami, zależnościami i całkowicie niezależny od systemu głównego. Wygląda i działa tak samo, niezależnie czy instalowany spod Debiana, Ubuntu, Suse, Fedory czy czegokolwiek innego.