Nov 13, 2023

docker run

Docker komanda docker run se koristi za pokretanje kontejnera na osnovu određenog Docker image-a. Ova komanda omogućava da se kreira, pokrene i upravlja kontejnerima sa specifičnim opcijama i konfiguracijama. Evo osnovne upotrebe i nekoliko primera:

Osnovna upotreba:

docker run <opcije> <ime_image-a>

Ova komanda kreira i pokreće kontejner na osnovu navedenog Docker image-a. Kontejner se pokreće u pozadini (u režimu daemon) i izlazi iz kontejnera kada se izvrši zadatak koji je definisan u Docker image-u (npr. pokretanje servera).

Primer:

docker run -d -p 8080:80 nginx

Ovaj primer kreira i pokreće Docker kontejner na osnovu "nginx" image-a. Opcija -d pokreće kontejner u pozadinskom režimu, a opcija -p 8080:80 mapira port 8080 na port 80 unutar kontejnera.

Interaktivni režim:

docker run -it ubuntu /bin/bash

Ovaj primer pokreće interaktivni kontejner sa Ubuntu operativnim sistemom i otvara komandnu liniju (/bin/bash) unutar kontejnera. Opcija -it omogućava interaktivni režim, što znači da možete direktno komunicirati sa komandom unutar kontejnera.

Dodeljivanje imena kontejneru:

docker run --name moj_kontejner -d -p 8080:80 nginx

Ovaj primer dodaje opciju --name kako bi se dodelilo ime kontejneru (u ovom slučaju "moj_kontejner"). To omogućava lakše upravljanje i referenciranje kontejnera.

Montiranje volumena:

docker run -d -v /lokalan/path:/path/unutar/kontejnera nginx

Ovaj primer koristi opciju -v kako bi se montirao lokalni volumen unutar kontejnera. To omogućava deljenje podataka između lokalnog sistema i kontejnera.

Povezivanje s mrežom (network):

docker run --rm -it --network=host ubuntu

Ovaj primer pokreće kontejner sa Ubuntu operativnim sistemom u interaktivnom režimu, deleći mrežni namespace sa host sistemom (opcija --network=host). Opcija --rm će automatski ukloniti kontejner nakon što se zatvori interaktivna sesija.

Definisanje varijabli okoline (environment variables):

docker run -e MY_VARIABLE=my_value ubuntu

Ovaj primer pokreće kontejner sa Ubuntu operativnim sistemom i postavlja varijablu okoline MY_VARIABLE sa vrednošću my_value. Kontejner će imati pristup ovoj varijabli okoline.

Mapiranje volume-a (mounting volumes):

docker run -v /lokalan/path:/path/unutar/kontejnera ubuntu

Ovaj primer mapira lokalni direktorijum na određeni put unutar kontejnera, omogućavajući deljenje podataka između lokalnog sistema i kontejnera.

Rukovanje resursima (handling resources):

docker run -it --cpu-shares=512 ubuntu

Ovaj primer pokreće interaktivni kontejner sa Ubuntu operativnim sistemom sa definisanim ograničenjem CPU resursa (opcija --cpu-shares=512). Ovo postavlja relativni prioritet deljenja CPU resursa u odnosu na druge kontejnere.

Rad s portovima:

docker run -d -p 8080:80 nginx

Ovaj primer pokreće Nginx kontejner u pozadini (opcija -d) i mapira lokalni port 8080 na port 80 unutar kontejnera (opcija -p 8080:80).

Postavljanje radnog direktorijuma:

docker run -v $(pwd):/app -w /app ubuntu

Ovaj primer pokreće kontejner sa radnim direktorijumom postavljenim na trenutni radni direktorijum na host sistemu ($(pwd) je Bash sintaksa za trenutni direktorijum). Opcija -v montira trenutni direktorijum u /app unutar kontejnera, a opcija -w postavlja radni direktorijum na /app.

Opcije i konfiguracije koje možete koristiti sa docker run su raznovrsne i zavise od vaših potreba. Ova komanda često predstavlja ključnu tačku u radu sa Docker kontejnerima, jer vam omogućava da prilagodite pokretanje kontejnera prema specifičnim zahtevima vaših aplikacija.

docker pull

 Docker komanda docker pull se koristi za preuzimanje (skidanje) Docker image-a sa Docker Hub-a ili drugog registra image-ova na lokalni sistem. Ova komanda vam omogućava da preuzmete image i pripremite ga za lokalno korišćenje. Evo osnovne upotrebe i primera:

Osnovna upotreba:

docker pull <ime_image-a>

Ova komanda će preuzeti Docker image sa navedenim imenom sa Docker Hub-a.

Primer:

docker pull nginx

Ovaj primer će preuzeti najnoviju verziju Docker image-a "nginx" sa Docker Hub-a. Docker će automatski preuzeti sve potrebne slojeve image-a i postaviti ih na vaš lokalni sistem.

Specifična verzija image-a:

Ako želite preuzeti određenu verziju image-a, možete navesti i tag verzije.

docker pull nginx:1.21.3

Ovaj primer će preuzeti specifičnu verziju "1.21.3" Docker image-a "nginx".

Preuzimanje image-a iz drugog registry-ja:

Ako image nije dostupan na Docker Hub-u, možete navesti punu putanju do image-a na drugom registry-ju.

docker pull registry.example.com/my-custom-image

Ovaj primer će preuzeti image "my-custom-image" sa registra "registry.example.com".

Nakon što preuzmete Docker image, možete ga koristiti za pokretanje kontejnera sa docker run komandom. Na primer:

docker run -d -p 80:80 nginx

Ovo je korisna komanda kada želite preuzeti image-ove sa Docker Hub-a ili drugih registara kako biste ih koristili lokalno na vašem sistemu.

docker search

 Docker komanda docker search koristi se za pretragu Docker Hub-a, online registra Docker image-ova, kako biste pronašli dostupne image-ove koje možete preuzeti. Ova komanda vam omogućava da pretražujete Docker Hub za image-ove koji odgovaraju određenim kriterijumima.

Osnovna upotreba:

docker search <ime_image-a>

Ova komanda pretražuje Docker Hub za image-ove koji sadrže navedeno ime.

Primer:

docker search nginx

Ovaj primer će pretražiti Docker Hub za image-ove koji uključuju "nginx" u svom imenu ili opisu. Rezultat će biti lista dostupnih image-ova sa relevantnim informacijama, uključujući ime, opis, broj zvezdica (ocena od strane zajednice) i druge informacije.

Dodatne opcije:

  • --filter ili -f: Omogućava vam filtriranje rezultata pretrage na osnovu različitih kriterijuma. Na primer, možete filtrirati rezultate na osnovu zvaničnih image-ova, određenog broja zvezdica, itd.

Primer sa filterom:

docker search --filter "is-official=true" nginx

Ovaj primer će pretražiti samo zvanične (official) image-ove koji sadrže "nginx" u svom imenu.

Kada pronađete željeni image, možete ga preuzeti na svoj sistem koristeći docker pull komandu. Na primer:

docker pull nginx

Ovo je korisno kada želite pronaći odgovarajući image za pokretanje određenog servisa ili aplikacije prema vašim potrebama.