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
– i mnogi drugi …
Napišite komentar