DevOps

Šta je Docker Images

Docker image

Docker image je datoteka, sastavljena od više slojeva, koja se koristi za izvršavanje koda u Docker kontejneru.
Slika je u suštini izgrađena od uputstava za kompletnu i izvršnu verziju aplikacije.
Kada korisnik pokrene sliku, ona postaje jedna ili više instanci tog kontejnera.

Docker image uključuje sistemske biblioteke, alate i druge datoteke za izvršni kod.
Programeri slika mogu ponovo da koriste slojeve statične slike za različite projekte.

Docker CLI omogućava korisniku da pokrene određene komande koje prilagođavaju Docker images.

docker build – pravi sliku iz Docker datoteke.
docker history – prikazuje istoriju slike, uključujući izmene unete na njoj i njenim slojevima.
docker update – omogućava korisniku da ažurira konfiguraciju kontejnera.
docker tag – pravi oznaku, kao što je target_image, koja omogućava korisnicima da grupišu i organizuju slike kontejnera.
docker search – traži u Docker Hub-u, spremištu slika, šta god je potrebno korisniku.
docker save – omogućava korisniku da sačuva slike u arhivi.
docker rmi – uklanja jednu ili više slika.

Napravite Docker images

Komanda docker build pravi Docker images i Dockerfile-a.
Možete da skladištite slike u docker registru/spremište i da pokrenete kontejnere.

Dockerfile

Dockerfile je tekstualni dokument koji sadrži sve komande koje bi korisnik mogao da izvrši na komandnoj liniji i da doda kod aplikacije i konfiguracije za sklapanje slike.
Dockerfile mora početi sa ‘FROM’ instrukcijom koja specificira osnovnu sliku od koje gradite.

Primer Docker:

FROM nginx:latest
COPY website/* /var/www/html/
EXPOSE 80

Napravite image:

docker build -t mywebsite:v1 .

– koristite tačku (.) ako Dockerfile postoji u trenutnom direktorijumu. Ukoliko nije, navedite putanju datoteke.
– koristite –tag ili -t da dodate ime i opciono oznaku u formatu ‘name:tag’ u docker image.

Gornja komanda kreira sliku (image)  web lokacije koristeći Dockerfile koja postoji u trenutnom direktorijumu.
Možete proveriti da li image postoji lokalno pomoću komande ‘docker images’.

docker images
REPOSITORY TAG     IMAGE ID     CREATED        SIZE
mywebsite  v1      afbc42e98787 2 minutes ago  305MB
nginx      latest  1e1148e4cc2c 4 weeks ago    202MB

Uputstva za Dockerfile

FROM
instrukcija FROM specifikuje osnovnu sliku. To mora biti prva instrukcija bez komentara u Dockerfile-u.

CMD
CMD instrukcija se koristi za postavljanje komande koja će se izvršiti prilikom pokretanja kontejnera.
Mora postojati samo jedan CMD u Dockerfile-u.

MAINTENER
Prema zvaničnoj Docker dokumentaciji, instrukcija MAINTAINER je zastarela.
Umesto toga, trebalo bi da koristite instrukciju LABEL da definišete autora generisanih slika.
Instrukcija LABEL je fleksibilnija, omogućava postavljanje metapodataka i može se lako videti pomoću komande ‘Docker inspect’.

LABEL
Instrukcija LABEL vam omogućava da navedete informacije o metapodacima za sliku. LABEL je par ključ/vrednost.

LABEL maintainer="[email protected]"

ADD
Instrukcija ADD se koristi za kopiranje datoteka, direktorijuma i udaljenih URL-ova na odredište (docker kontejner) unutar sistema datoteka Docker images.
Ako je izvor komprimovana datoteka (tar, gzip,bzip2,etc) onda će se izdvojiti na navedenom odredištu.

COPY
Instrukcija COPY se koristi za kopiranje datoteka, direktorijuma udaljenih URL-ova na odredište (docker kontejner) unutar sistema datoteka Docker images.

RUN
Instrukcija RUN se koristi za izvršavanje bilo koje komande na vrhu trenutne slike i to će stvoriti novi sloj.

ENTRYPOINT
Instrukcija ENTRYPOINT se koristi za konfigurisanje i pokretanje kontejnera kao izvršnog fajla.

VOLUME
Instrkcija VOLUME se koristi za kreiranje volumena za montiranje u docker kontejner iz docker host fajl sistema.

USER
Instrukcija VOLUME specificirati korisničko ime, ime grupe, UID i GUID za izvršavanje narednih komandi.

WORKDIR
Instrukcija VOLUME specificira radni direktorijum.

ENV
Instrukcija VOLUME se koristi za postavljanje promenljivih okruženja sa ključem i vrednošću.

ARG
ARG instrukcija se takođe koristi za postavljanje promenljivih okruženja sa ključem i vrednošću. Ali ova promenljiva se postaviti samo tokom gradnje slike, a ne na kontejneru.

EXPOSE
Instrukcija EXPOSE se koristi za postavljanje mrežnih portova koje kontejner sluša tokom vremena izvršavanja.

POSTAVLJANJE SLIKA NA DOCKER STORE

Docker Hub

Docker Hub je usluga koju pruža Docker za pronalaženje i deljenje slika kontejnera.
Posetite https://hub.docker.com i napravite nalog za čuvanje vaših slika.
Možete kreirati bilo koji broj javnih skladišta i jedno privatno skladište imate besplatno. Ako želite više privatnih skladišta, možete nadograditi plan.

Sliku možete  da prebacite na docker hub komandom ‘docker push’.

Pre toga, potrebno je da uradite dve stvari:

1. Prijavite se na docker pomoću komande ‘docker login’ i unesite korisničko ime i lozinku.

2. Označite sliku imenom spremišta koristeći komandu ‘docker tag’.

docker login:
Username:
Password:
Login Succeeded
docker images
REPOSITORY TAG     IMAGE ID     CREATED        SIZE
mywebsite  v1      44870583de0c 2 minutes ago  305MB
nginx      latest  1e1148e4cc2c 4 weeks ago    202MB
docker tag 44870583de0c my-repository/website:v1
docker push my-repository/website:v1
The push refers to repository [docker.io/my-repository/website]
bc6f85aad9de: Pushed
071d8db76517: Mounted from library/nginx
1.0: digest: sha256:4fftu78573jj1596357jdshf528963ffdndhssodj84jwtahjd size:948

Slike možete skladištiti i u privatnim repozitorijumima koje nude različiti Cloud provajderi.

– Registar Elastičnog Kontejnera od strane AWS-a. ECR

Registar Azure Kontejnera od Microsoft Azure

Google registar kontejnera od strane Googla

Docker pouzdani registar od Dockera

Docker registri na Quay.io

– i mnogi drugi …

 

 

Napišite komentar