Kako instalirati Apache u Docker kontejner u Linuxu


Ako ste Linux sistemski administrator koji pruža podršku programerima, velika je vjerovatnoća da ste čuli za Docker. Ako ne, ovo softversko rješenje će vam olakšati život počevši od danas pomažući vam da smanjite operativne troškove i ubrzate implementaciju – između ostalih prednosti.

Ali to nije magija. Docker kao platforma koristi kontejnere – pakete aplikacije zajedno sa svim alatima koji su joj potrebni da bi se eliminisale razlike između okruženja.

Drugim riječima, kontejnerski softver će raditi i njime se može upravljati dosljedno bez obzira na to gdje je instaliran. Osim toga, kontejnere je mnogo lakše postaviti, pokrenuti, zaustaviti i održavati od dobrih starih virtuelnih mašina.

Ako ste zainteresirani da saznate više o razlikama između ove dvije tehnologije, službena Docker web stranica pruža odlično objašnjenje.

Za ilustraciju, u ovom članku ćemo objasniti kako instalirati Docker na CentOS/RHEL, Rocky/Alma Linux i Debian/ Ubuntu i pokrenuti Apache 2.4 kontejner iz Docker Hub-a.

Zatim ćemo ga koristiti za posluživanje jednostavne web stranice iz našeg matičnog direktorija – sve bez potrebe za instaliranjem web servera na našem hostu.

Instalacija Dockera na Linux

Za početak, instalirajmo Docker koristeći sljedeću curl komandu. Ovo će preuzeti i pokrenuti shell skriptu koja će dodati Docker spremište u naš sistem i instalirati paket.

curl -fsSL https://get.docker.com | sh

Zatim koristite naredbu systemctl da pokrenete glavnu uslugu Docker, omogućite joj pokretanje tokom ponovnog pokretanja i provjerite njen status.

systemctl start docker
systemctl enable docker
systemctl status docker

U ovom trenutku možemo jednostavno izvršiti.

docker

da vidite listu dostupnih komandi ili da dobijete pomoć.

docker COMMAND --help
docker ps --help

će nam reći kako da navedemo kontejnere prisutne na našem sistemu, dok

docker run --help

će ispisati sve opcije koje možemo koristiti za manipuliranje kontejnerom.

Postavljanje Apache kontejnera

Jedna od nevjerovatnih stvari u vezi Docker ekosistema je da postoje desetine standardnih kontejnera koje možete lako preuzeti i koristiti.

U sljedećem primjeru, mi ćemo instancirati Apache 2.4 kontejner pod nazivom tecmint-web, odvojen od trenutnog terminala. Koristit ćemo sliku pod nazivom httpd:2.4 iz Docker Hub-a.

Naš plan je da zahtjevi upućeni našoj javnoj IP adresi na portu 8080 budu preusmjereni na port 80 na kontejneru. Također, umjesto serviranja sadržaja iz samog kontejnera, poslužit ćemo jednostavnu web stranicu sa /home/user/website.

To radimo mapiranjem /home/user/website/ na /usr/local/apache2/htdocs/ na kontejneru. Imajte na umu da ćete morati koristiti sudo ili se prijaviti kao root da biste nastavili, i nemojte izostavljati kose crte na kraju svakog direktorija.

sudo docker run -dit --name tecmint-web -p 8080:80 -v /home/user/website/:/usr/local/apache2/htdocs/ httpd:2.4

U ovom trenutku, naš Apache kontejner bi trebao biti pokrenut.

sudo docker ps

Sada napravimo jednostavnu web stranicu pod nazivom docker.html unutar /home/user/website direktorija.

vi /home/user/website/docker.html

Dodajte sljedeći uzorak HTML sadržaja u datoteku.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Learn Docker at linux-console.net</title>
</head>
<body>
    <h1>Learn Docker With Us</h1>   
</body>
</html>

Zatim usmjerite svoj pretraživač na Server-IP:8080/docker.html (gdje je Server-IP javna IP adresa vašeg domaćina). Trebalo bi vam biti predstavljena stranica koju smo prethodno kreirali.

Ako želite, sada možete zaustaviti kontejner.

sudo docker stop tecmint-web

i uklonite ga:

sudo docker rm tecmint-web

Da biste završili čišćenje, možda ćete htjeti izbrisati sliku koja je korištena u kontejneru (izostavite ovaj korak ako uskoro planirate kreirati druge Apache 2.4 kontejnere).

sudo docker image remove httpd:2.4

Imajte na umu da u svim gornjim koracima nikada nismo morali da instaliramo web server na naš host.

Sažetak

U ovom članku smo objasnili kako instalirati Docker i manipulirati kontejnerom. Nažalost, ovo su samo osnove – postoje čitavi kursevi, knjige i ispiti za sertifikaciju koji detaljnije pokrivaju Dockers (i kontejnere općenito).

Ako želite saznati više o Dockeru, već smo pokrili seriju od 3 članka, koja objašnjava kako instalirati Docker, pokrenuti aplikacije u kontejnere i automatski izgraditi docker slike s dockerfileom.

  • Instalirajte Docker i naučite osnovnu manipulaciju kontejnerima u CentOS-u i RHEL-u
  • Kako implementirati i pokrenuti aplikacije u Docker kontejnerima na CentOS/RHEL-u
  • Automatski izgradite i konfigurišite Docker slike pomoću Dockerfile-a na CentOS/RHEL-u
  • Kako ukloniti Docker slike, kontejnere i volumene

Smatrajte ovo svojom početnom tačkom i javite nam ako imate bilo kakvih pitanja ili komentara – radujemo se Vašem odgovoru!