Izradite kućni server pomoću Docker Desktopa

  • Prenamijenite staro računalo ili mini računalo s Dockerom ili Docker Desktopom kako biste postavili fleksibilan kućni poslužitelj s više servisa izoliranih u kontejnerima.
  • Kombinirajte Docker mreže, DuckDNS i obrnuti proxy s Let's Encrypt ili Nginx Proxy Managerom kako biste svoje usluge izložili HTTPS-u izvan kućne mreže.
  • Implementirajte ključne aplikacije kao što su Nextcloud, Plex/Jellyfin, Vaultwarden, Pi-hole i VPN-ovi tipa Wireguard kako biste pokrili pohranu, multimediju, sigurnost i udaljeni pristup.
  • Upravljajte cijelim okruženjem pomoću Portainera ili docker-compose datoteka kako biste olakšali održavanje, ažuriranja i stvaranje novih usluga.

Izradite kućni server pomoću Docker Desktopa

Postavljanje kućnog poslužitelja pomoću Docker Desktopa kao njegove glavne komponente postalo je jedan od najpraktičnijih načina za pokretanje vlastitih usluga: privatnog oblaka, medijskog poslužitelja, VPN-a, filtriranog DNS-a, upravitelja lozinki, pa čak i poslužitelja igara. Uz malo znanja i bilo koje staro računalo ili mini računalo, možete stvoriti pravi kućni laboratorij za učenje i, usput rečeno, korištenje korisnih usluga za svakodnevni život.

Opća ideja je vrlo jednostavna: koristite stabilan operativni sustav (Debian, Ubuntu, Proxmox, čak i Windows) i iskoristite Docker za enkapsulaciju svake usluge u vlastiti spremnik. To odvaja svaku aplikaciju, izbjegava sukobe, pojednostavljuje ažuriranja i omogućuje vam da sve ukinete i ponovno izgradite bez straha od rušenja cijelog sustava. Pogledajmo, korak po korak i detaljno, kako je sve to organizirano i koje zanimljive usluge možete postaviti na svom kućnom poslužitelju pomoću Dockera ili Docker Desktopa.

Odabir opreme i sustava za vaš kućni server

Prvo što treba uzeti u obzir je s kojim ćete računalom raditi: bilo koje staro računalo koje imate kod kuće obično je više nego dovoljno za početak. Mnogi ljudi ponovno koriste stari toranj, drugi kupuju mini računalo niske snage, a neki čak nadograđuju na NAS poput Synologyja ili profesionalnije rješenje poput Proxmoxa.

Ako se odlučite za stariji toranj, uobičajeno je dodati namjenske tvrde diskove za pohranu, na primjer, nekoliko višeterabajtnih tvrdih diskova u RAID-u radi tolerancije grešaka. Prilično tipična postavka je instaliranje dva 2TB diska u RAID, a kasnije proširenje na 8TB ili 12TB diskove kada prostor postane nedovoljan.

Što se tiče operativnog sustava, mogućnosti su široke: možete koristiti Windows, Linux ili namjensku distribuciju za pohranu poput TrueNAS-a. Mnogi ljudi počinju izravno s Windowsima koji dolaze s njihovim računalom i rade bez problema, ali ako biste danas morali početi ispočetka, vjerojatno biste bili više zainteresirani za laganu Linux distribuciju (Debian ili Ubuntu Server) ili NAS s vlastitom distribucijom, poput Synology NAS uređaja koji pokreću visoko optimiziranu verziju Linuxa.

Minimalni hardverski zahtjevi također nisu nerazumni: za većinu kućne upotrebe, 2 GB RAM-a i dvojezgreni CPU su više nego dovoljni, pod uvjetom da je sustav donekle optimiziran i da ne pokrećete teško desktop okruženje. Na NAS-u tipa Synology s 2 GB RAM-a i dvojezgrenim procesorom možete pokrenuti dobar broj spremnika (oblak, multimedija, preuzimanja, DNS itd.) bez prekoračenja 20% korištenja CPU-a, osim povremenih skokova prilikom reprodukcije videa.

Veliko pitanje obično je treba li odabrati NAS poput Synologyja ili se držati stolnog tornja: NAS zauzima manje prostora, stvara puno manje buke i dobro je prilagođen za performanse servera, ali je skuplji ako već imate stolno računalo kod kuće. S druge strane, stolno računalo se može proširiti; možete promijeniti CPU, RAM, dodati kartice za proširenje i tako dalje. Ako vam treba puno snage, to će biti najfleksibilnija opcija. Međutim, provjerite ima li pristojnu mrežnu karticu , jer nema smisla imati snažan server ako je usko grlo veza.

Proxmox, Docker, Docker Desktop i Portainer: kombinacija za vaš laboratorij

Vrlo praktičan način organiziranja kućnog servera je postavljanje Proxmox kao sloj virtualizacije i unutar njega stvoriti LXC kontejnere ili virtualne strojeve na kojima se može instalirati Docker. Proxmoxom se u potpunosti upravlja iz preglednika, pristupom IP adresi poslužitelja (nešto poput http://<ip_servidor>), tako da vam monitor ili tipkovnica nisu potrebni na "poslužitelj".

U tipičnoj Proxmox postavci, možete imati više LXC kontejnera koji pokreću različite Linux distribucije (Debian, Ubuntu itd.), svaki sa svojom IP adresom i dodijeljenim resursima. Unutar jednog od ovih kontejnera instalirate Docker, a odatle upravljate kontejnerima iz naredbenog retka ili grafičkog sučelja poput Portainera. To vam omogućuje da izolirate servise i imate, na primjer, jedan kontejner za web servise, drugi za baze podataka, treći za nadzor i tako dalje.

Sam Docker je kontejnerska platforma koja enkapsulira aplikacije zajedno sa svim njihovim ovisnostima. Host sustav dijeli kernel, pa je puno lakši od potpunog virtualnog stroja. To je idealno za više servisa koji interno slušaju na istim portovima, ali mapiraju različite portove izvana kako bi se izbjegli sukobi. Na primjer, dva kontejnera s web poslužiteljima koji interno koriste port 80, ali jedan je izložen kao 8080:80, a drugi kao 8081:80 na hostu.

Ako radite na računalu (Windows ili macOS), Docker Desktop uvelike pojednostavljuje postavljanje jer instalira Docker Engine , osnovno grafičko sučelje i integraciju s Docker Composeom. Na čistom Linux poslužitelju koristit ćete Docker Engine "prema zadanim postavkama", bez sučelja za računalo, ali temeljna filozofija je ista.

Kao završni detalj, možete instalirati prijevoznikPortainer je vrlo jednostavno web sučelje za upravljanje kontejnerima, slikama, mrežama i volumenima bez oslanjanja na terminal. Iz Portainera možete pokretati, zaustavljati i brisati kontejnere, pregledavati logove i stvarati stogove s datotekama. docker-compose.yml i kontrolirate više Docker hostova s ​​jedne ploče.

Instalirajte Docker na Debian, Proxmox ili LXC kontejner

Instalirajte Docker

Ako odaberete Debian 10/11 kao osnovni sustav, preporučeni postupak je dodavanje službenog Docker repozitorija i izbjegavanje paketa koji dolazi s distribucijom prema zadanim postavkama, a koji je obično zastario. Tipični koraci su priprema sustava, dodavanje GPG ključa, konfiguriranje repozitorija, instalacija paketa i testiranje radi li sve.

Prvo ažurirate sustav, instalirate osnovne pakete (kao što su ca-certificates, curl, gnupg y lsb-release) i tada Preuzmite ključ iz službenog repozitorija Za instalaciju Dockera, registrirajte ga u sustavu i dodajte unos koji odgovara vašoj verziji Debiana. Zatim instalirajte Docker engine i preporučene komponente.

Nakon instalacije, dobra je ideja pokrenuti testni kontejner hello-world za Provjerite je li Docker operativan i provjerite verziju s docker --versionUsput, dobra je ideja dodati svoje korisničko ime u grupu. docker tako da ne morate koristiti sudo cijelo vrijeme. Nakon brzog ponovnog pokretanja, provjerite status usluge s systemctl status docker i to je to

U okruženjima koja koriste Proxmox i LXC kontejnere, mnogi ljudi koriste automatizirani skript koji se izvršava unutar LXC kontejnera, pokrećući Docker te rukujući cgrupama i drugim postavkama specifičnim za kontejner. Ovi se skripti obično nalaze u Proxmox repozitorijima zajednice i štede znatno vrijeme, iako uvijek možete slijediti službenu Docker dokumentaciju za Ubuntu ili Debian.

Ako koristite Docker Desktop na Windowsima ili macOS-u, postupak je jednostavniji: preuzmite instalacijski program, pokrenite ga, ponovno pokrenite ako je potrebno i aplikacija će automatski pokrenuti Docker engine u pozadini. Iz grafičkog sučelja možete pregledavati kontejnere, slike i logove, a istovremeno koristiti standardni terminal s istim Docker naredbama.

Portainer: web panel za upravljanje vašim kontejnerima

Portainer je jedan od onih alata koji, nakon što ga isprobate, nikada se više nećete htjeti vratiti upravljanju svime isključivo putem naredbenog retka , pogotovo ako tek počinjete. Instalira se kao i svaki drugi Docker kontejner i, nakon što se pokrene, pruža web-panel za pregled i upravljanje vašim okruženjem.

Na Debian poslužitelju, na primjer, najčešća praksa je prvo stvoriti Portainer kontejner mapiranjem luka 9000 (ili 9443 ako koristite HTTPS). Klasična slika je portainer/portainer ili, u trenutnoj verziji, portainer/portainer-ceJednostavnom naredbom docker run Određivanjem naziva spremnika, portova i volumena podataka, ploča je sada spremna.

Za pristup jednostavno otvorite preglednik i usmjerite ga na IP adresa poslužitelja nakon čega slijedi portnešto poput http://ip-del-servidor:9000Prilikom prvog pristupa, Portainer vas traži da kreirate administratorsku lozinku, odaberete okruženje (lokalno, sam Docker host) i odatle ćete biti na glavnoj ploči s koje možete vidjeti slike, kontejnere, mreže, volumene, stekove itd.

Velika prednost je što Portainer Omogućuje vam stvaranje kontejnera jednim klikom.bilo korištenjem predložaka ili prijenosom vlastitih datoteka docker-compose.yml u odjeljku Stacks. Također možete pregledavati zapisnike u stvarnom vremenu, upravljati varijablama okruženja, montirati volumene, mreže i još mnogo toga bez potrebe da sve pamtite u terminalu.

Docker mreže, interni DNS i priprema za obrnuti proxy

Kada počnete imati više kontejnera koji trebaju međusobno komunicirati (web, baza podataka, oblak, obrnuti proxy itd.), bitno je razumjeti kako umrežavanje funkcionira u Dockeru . Najčešći pristup je stvaranje namjenske mostne mreže za vaše usluge i povezivanje svih kontejnera koji trebaju komunicirati s njom.

Prilikom stvaranja prilagođene mostne mreže, Docker podiže mali interni DNS poslužitelj za tu mrežu. To znači da se kontejneri mogu međusobno razlučivati ​​po imenu, bez potrebe za IP adresama. Na primjer, ako se vaš kontejner baze podataka zove mariadb A ako se vaš Nextcloud kontejner nalazi na istoj mreži, moći ćete koristiti mariadb kao host baze podataka u konfiguraciji Nextclouda.

Mali savjet: ako zatim koristite ta imena u nginx konfiguracijama (bilo u ručnom obrnutom proxyju ili unaprijed konfiguriranom kontejneru), preporučuje se da sva imena kontejnera budu mala slova , jer se nginx normalizira u mala slova prije rješavanja. To sprječava glupe DNS probleme koji će vam oduzimati vrijeme.

Ova uobičajena mreža mostova je također odlična kada postavljate obrnuti proxy s nginxom ili alatima poput Nginx Proxy Managera ili Traefika, budući da proxy treba znati samo imena odredišnih kontejnera (na primjer, nextcloud, jellyfinitd.) i moći će usmjeravati promet interno bez dodirivanja IP adresa.

Vanjski pristup: DuckDNS, SSL certifikati i Let's Encrypt

Ako želite pristupiti svom kućnom poslužitelju izvan mreže (na primjer, iz privatnog oblaka ili medijskog poslužitelja), trebat će vam domena ili poddomena koja upućuje na vašu IP adresu . Budući da većina nas ima dinamičke IP adrese od svog davatelja internetskih usluga, popularno rješenje je DuckDNS, koji vam daje besplatnu poddomenu i jednostavan način ažuriranja vaše IP adrese.

Odlična stvar je što i ti možeš Koristite DuckDNS iz Dockerapodizanje kontejnera poput onog u linuxserver/duckdnsU ovom spremniku konfigurirate svoju poddomenu i token, a on automatski ažurira javnu IP adresu tako da naziv domene uvijek ispravno ukazuje na vaš dom. Na taj način ne morate brinuti ako se IP adresa usmjerivača promijeni nakon ponovnog pokretanja.

Tu nastupa Let's Encrypt. Ideja je stvoriti kontejner koji kombinira nginx kao obrnuti proxy i Let's Encrypt za automatsko upravljanje SSL certifikatima. Slika linuxserver/letsencrypt To je klasika: brine se o izdavanju certifikata (čak i džoker znaka za poddomene) i automatskom obnavljanju kad god se približi njegov istek.

Prilikom prvog pokretanja kontejnera, Let's Encrypt provjerava jeste li doista vlasnik domene, obično koristeći sam DuckDNS. Ako sve prođe u redu, generira certifikate i od tada nadalje nginx počinje odgovarati. HTTPS na portu 443Certifikati traju 90 dana, ali kontejner svakodnevno provjerava njihov status i, ako vidi da je ostalo manje od 30 dana, pokušava ih automatski obnoviti. Ako nešto pođe po zlu, prijavljuje se /config/log/letsencrypt Reći će vam što se dogodilo.

Što se tiče konfiguracije portova, često se koristi prosljeđivanje portova usmjerivača: na primjer preusmjeri vanjski port 443 na unutarnji port 444 poslužiteljaa zatim mapirajte port 444 poslužitelja na port 443 kontejnera u Dockeru. Za pristup internetu i dalje se spajate putem https://tusubdominio.duckdns.org bez da išta primijetite. Port 80 treba biti otkriven samo ako želite HTTP validaciju, ali za određene načine DNS validacije to nije ni bitno.

Hostirajte statičke web stranice i konfigurirajte nginx u kontejneru

Nakon što je vaš nginx + Let's Encrypt kontejner pokrenut, možete ga iskoristiti za posluživati ​​statičnu web stranicu zajedno s ostalim uslugama. Ova slika obično mapira mapu s konfiguracijom i podacima na host, nešto poput /home/user/appdata/letsencrypt, gdje ćete unutar imati podmape poput /config, /www, /nginx, Itd

HTML datoteke vaše statičke web stranice obično se nalaze u /config/wwwDakle, ako kopirate index.html ili page1.htmlMoći ćete mu pristupiti putem svoje sigurne domene: na primjer, https://www.subdominio.duckdns.org/page1.htmlTo je vrlo jednostavan način održavanja "domaće" web stranice izravno s istog poslužitelja.

Glavna nginx konfiguracijska datoteka obično se nalazi u /config/nginx/defaultNije dobra ideja izbrisati ga jer se regenerira kada se kontejner ponovno pokrene, ali možete uredite ga kako biste ga prilagodili prema vašim potrebama. Prema zadanim postavkama, obično osluškuje port 443, a korijen dokumenta točno pokazuje na /config/www.

Ako želiš da slušam i na portu 80 i Preusmjeri sav HTTP promet na HTTPSMorat ćete ukloniti komentare iz odgovarajućih redaka na vrhu datoteke (blok server (osluškuje port 80 i vraća preusmjeravanje na port 443). Nakon svake promjene konfiguracijskih datoteka, ponovno pokrenite kontejner kako bi nginx ponovno učitao konfiguraciju.

Nextcloud iza obrnutog proxyja: vaš privatni oblak

Jedna od najboljih aplikacija za kućni poslužitelj je Nextcloud, vaš privatni oblak sa sinkronizacijom datoteka, kalendarom, kontaktima, bilješkama, fotogalerijom i još mnogo toga. Obično ga implementirate zajedno s bazom podataka, kao što je MariaDB, a zatim ga postavite iza obrnutog proxyja koji već imate s Let's Encryptom.

Tipičan tijek rada u Dockeru je otprilike ovakav: prvo kreirate kontejner baze podataka koristeći sliku linuxserver/mariadbkonfiguriranje varijabli okruženja tako da stvoriti određenog korisnika i bazu podataka za Nextcloud (na primjer, MYSQL_USER=nextcloudsigurna lozinka i baza podataka pod nazivom nextcloud_dbZatim pokrenete kontejner i, ako želite, unesete ga za upravljanje bazama podataka iz naredbenog retka.

Zatim kreirate Nextcloud kontejner sa slikom linuxserver/nextcloud ili službeni, povezujući ga s istom mrežom mosta i usmjeravajući njegove varijable na bazu podataka prema nazivu spremnika (koristeći mariadb kao host). U početku ste mogli privremeno pristupiti Nextcloudu putem internog porta (nešto poput http://ip_servidor:444), ali najčešća praksa je pričekati dok ga ne stavite iza proxyja i dovršite konfiguraciju putem HTTPS-a.

Za integraciju s obrnutim proxyjem Let's Encrypt, u ​​mapi /config/nginx/proxy-confs U tom spremniku naći ćete primjere datoteka, kao što su nextcloud.subdomain.conf.sample. Dosta sa preimenovati ga u nextcloud.subdomain.conf i prilagodite, ako želite, poddomenu koju ćete koristiti (nešto poput nextcloud.subdominio.duckdns.orgNakon ponovnog pokretanja Let's Encrypt kontejnera, ta poddomena će sada pokazivati ​​na vaš Nextcloud kontejner.

Prilikom prvog posjeta https://nextcloud.tusubdominio.duckdns.org, vidjet ćete zaslon za instalaciju Nextclouda: tamo definirate administratorskog korisnika i njegovu lozinku, navodite bazu podataka (nextcloud_db), korisničko ime i lozinka konfigurirani u MariaDB-u i kao DB host koji ste naveli mariadb. Od tad, Sav korisnički pristup bit će šifriran. Zahvaljujući Let's Encrypt proxyju, dok se interna komunikacija između proxyja i Nextcloud kontejnera održava na lokalnoj Docker mreži.

Osnovne usluge koje možete postaviti pomoću Dockera

Nakon što postavite i pokrenete osnovne postavke (Docker, mrežni most, obrnuti proxy, SSL certifikat), nema granica . Postoji mnoštvo servisa idealnih za kućni poslužitelj, a gotovo svi imaju dobro održavane slike koje možete implementirati putem Docker Composea ili Portainera.

Za upravljanje Dockerom, Portainer je vaš najbolji saveznikOmogućuje vam da na prvi pogled vidite sve kontejnere, slike i volumene, a također i da stvorite složene stogove pomoću datoteka docker-compose.ymlNadalje, ako u budućnosti imate više od jednog Docker hosta (na primjer, drugi poslužitelj na vašoj mreži), možete upravljati svima njima iz jedne Portainer instance.

Klasičan način za centralizaciju domena i certifikata bez potrebe za ručnim radom s nginxom je Nginx upravitelj proxyjaTo je kontejner koji izlaže portove 80, 81 i 443: 80 za HTTP, 443 za HTTPS i 81 za administracijsko sučelje. Postavlja se putem Docker Composea definiranjem slike (jc21/nginx-proxy-manager:latest), container_name, pravila ponovnog pokretanja, portovi te konfiguracijski i podatkovni volumeni, tako da certifikati i postavke ostanu sačuvani čak i ako izbrišete spremnik.

U samoj datoteci docker-compose.yml Možete se igrati s mapiranjem portova, na primjer promjenom upravna luka na nešto manje standardno: ako stavite 84:81Preusmjerit ćete port 84 hosta na port 81 kontejnera, tako da biste pristupili web panelu s http://<ip_servidor>:84Ovo je korisno ako imate druge aplikacije koje koriste utor 81 ili želite izbjeći zadane vrijednosti.

Na razini volumena, Nginx Proxy Manager obično montira mape hosta (apsolutne putanje) gdje pohranjuje konfiguraciju i certifikate, ali možete odabrati i Docker imenovani volumenikoji ne zahtijevaju određene putanje u datotečnom sustavu. Docker ih pohranjuje u /var/lib/docker/volumes I savršeni su kada ne morate kontrolirati točno kamo podaci idu, već samo da se sačuvaju prilikom ponovnog stvaranja kontejnera.

Uz proxy i Portainer, u kućnom laboratoriju postoji cijela kolekcija vrlo popularnih servisa: Wireguard ili Zerotier za VPN, AdGuard ili Pi-hole za filtriranje DNS-a, Grafana i Prometheus za praćenje, baze podataka poput PostgreSQL-a, MongoDB-a ili Redisa, Nextcloud za oblak, Jellyfin ili Plex za multimediju, Home Assistant za kućnu automatizaciju i tipični -arr servisi (Sonarr, Radarr, Prowlarr, Readarr) integrirani s torrent klijentom poput Transmissiona.

Filtriranje pohrane, multimedije, lozinki i DNS-a na vašem poslužitelju

Jedna od najpraktičnijih upotreba kućnog poslužitelja je kao centralizirani poslužitelj datoteka za pohranu dokumenata, fotografija, videozapisa i sigurnosnih kopija. Možete ga postaviti kao jednostavnu mrežnu mapu iz preglednika datoteka na računalu ili dodati sloj oblaka pomoću Nextclouda ili FileBrowsera, ovisno o tome želite li nešto slično Google disku ili preferirate nešto jednostavnije.

Ako samo dvije ili tri osobe pristupaju datotekama (na primjer, vi i vaš partner), često je praktičnije mapirati mrežni pogon u sustavu (SMB/NFS) i izbjeći komplicirana web sučelja. Uz to, i dalje možete koristiti namjenske NAS aplikacije za fotografije (poput onih od Synologyja) ili Nextcloud aplikacije kako biste svoje galerije organizirali i bili im dostupni s telefona.

Drugi veliki klasik je kućni medijski poslužitelj . Čak i ako nastavite plaćati za Netflix, Prime, HBO i slično, uvijek će postojati sadržaj koji nije na nijednoj platformi ili koji želite preuzeti. Za reprodukciju na televizoru, telefonu ili tabletu uobičajena rješenja su Plex, Emby ili Jellyfin. U Synology okruženjima, na primjer, Plex obično radi posebno glatko jer ima izvorni paket, bez potrebe za Dockerom, što smanjuje opterećenje CPU-a i poboljšava korisničko iskustvo.

Nedostatak Plexa je što mobilna komponenta zahtijeva pretplatu (oko 5 € mjesečno ili skuplju doživotnu licencu), ali zauzvrat nudi vrlo uglađeno sučelje i pristojnu podršku. Jellyfin je potpuno besplatan i otvorenog koda, ali može doći do blagog kašnjenja s određenim kombinacijama hardvera i transkodiranja . Emby je negdje između. Idealno bi bilo isprobati nekoliko i vidjeti koji najbolje odgovara vašem poslužitelju i vašim klijentima.

Za automatizaciju preuzimanja sadržaja, uobičajeni pristup je postavljanje kombinacije aplikacija koje završavaju na -arr : Prowlarr kao agregator indeksera, Sonarr za TV serije, Radarr za filmove, Readarr za knjige, a sve to orkestrirano s torrent klijentom poput Transmisije. Svaka komponenta radi u vlastitom spremniku, dijeleći mape za preuzimanje i biblioteku, tako da kada je epizoda spremna, automatski se premješta na svoju lokaciju i pojavljuje se u Plexu ili Jellyfinu.

Što se tiče sigurnosti, toplo se preporučuje imati vlastiti samostalno hostirani upravitelj lozinki . Vaultwarden (laka implementacija Bitwardena) vrlo je popularna opcija u Dockeru jer se integrira s proširenjima preglednika i mobilnim aplikacijama baš kao i službena usluga. To vam sprječava ponovnu upotrebu lozinki i izbjegava oslanjanje na pohranu preglednika, koja može biti izložena ako otkrijete zlonamjerni softver. Ako ga ne želite sami hostirati, uvijek možete koristiti usluge u oblaku poput NordPass-a, ali važno je da ne pohranjujete nešifrirane lozinke u pregledniku.

Za blokiranje DNS-a i oglasa/praćenja, Pi-hole ostaje vodeći projekt. Stavite ga u kontejner, usmjerite svoj usmjerivač ili uređaje na njegovu IP adresu kao njihov DNS poslužitelj, a on filtrira oglase i praćenje na temelju vanjskih popisa. Web-stranice poput Fireboga omogućuju vam sastavljanje popisa domena za blokiranje, od jednostavnih oglasa do nametljivih praćenja. Na taj način sav vaš mrežni promet prolazi kroz Pi-hole prije nego što stigne do interneta.

Umrežavanje, portovi, VPN i početak rada s Dockerom ako se izgubite

Jedan od najzastrašujućih aspekata na početku je umrežavanje i portovi . U stvarnosti, osnovni koncept je vrlo sličan onome kod klasičnog igraćeg servera: svaki kontejner osluškuje jedan ili više internih portova, a vi odlučujete koje ćete portove hosta izložiti i preusmjeriti s vašeg usmjerivača prema van.

U Dockeru, sintaksa za portove u Composeu slijedi shemu host:contenedor, Na primjer, 80:80 To znači da se port 80 hosta premješta na port 80 kontejnera. Ako prebacite na 8080:80Pristupat ćete internom portu 80 putem porta 8080 na hostu. To vam omogućuje da imate mnogo usluga koje koriste isti interni port, ali s različiti vanjski priključci, bez sukoba.

Za siguran udaljeni pristup vašoj mreži (osim otkrivanja određenih usluga), WireGuard je lagana i vrlo brza opcija. S dobro konfiguriranim WireGuard kontejnerom možete spojiti svoj mobilni telefon ili prijenosno računalo izvan kuće i pregledavati kao da ste unutar svoje LAN mreže. ZeroTier je još jedna zanimljiva alternativa ako želite stvoriti virtualne mreže među prijateljima za igraće servere i druge svrhe, bez suočavanja s NAT-om i prosljeđivanjem portova na svakom kraju.

Ako počinjete od nule i sve vam zvuči kao besmislica, zamislite kontejner poput izolirani "mini sustav" unutar vašeg poslužitelja, kojem pristupate naredbama poput docker exec -it nombre_contenedor bashSlično je ulasku u virtualno okruženje, ali na razini sustava umjesto samo jezičnih biblioteka. Unutar kontejnera koristite vlastite naredbe aplikacije (na primjer, klijente baze podataka, upravitelje paketa itd.), dok izvana upravljate operacijama kontejnera pomoću... docker o docker compose.

S vremenom ćete vidjeti da je najpraktičnije definirati sve svoje usluge u jednoj ili više njih. datoteke docker-compose.ymlTamo deklarirate sliku, naziv spremnika, politiku ponovnog pokretanja (unless-stopped (vrlo je uobičajeno), portove, volumene i varijable okruženja. Zatim samo trebate otići u mapu u kojoj se nalazi datoteka i pokrenuti docker compose up -d da sve radi u pozadini. Ako više volite nešto vizualnije, Portainer će vam omogućiti učitavanje tih YAML datoteka iz sučelja i upravljanje njima kao "stogovima".

Nakon što steknete čvrste temelje s Dockerom, dobar broj servisa pokrenutih i neko iskustvo s portovima i mrežama, vaš kućni poslužitelj postaje savršen laboratorij za daljnje učenje : možete eksperimentirati s bazama podataka, mikroservisima, praćenjem s Grafanom i Prometheusom, kućnom automatizacijom s Home Assistantom ili čak postaviti vlastiti web poslužitelj kao poligon za testiranje prije nego što ga instalirate na javni VPS.

Cijeli ovaj ekosustav, podržan od strane Dockera ili Docker Desktopa, znači da sa starim računalom , nekoliko diskova i malo vremena možete prijeći iz stanja kada ne znate odakle početi, u stanje kada imate mnogo korisnih i sigurnih usluga koje rade kod kuće, sa šifriranim pristupom izvana, sigurnosnim kopijama, centraliziranom multimedijom i infrastrukturom na kojoj možete nastaviti s radom bez straha od kvara nečeg kritičnog.


Dodaj kao preferirani izvor na Googleu