Randy Pausch Last Lecture: Achieving Your Childhood Dreams
Sadržaj:
- Naredba za pokretanje
- Pokrenite kontejner u prvi plan
- Pokrenite spremnik u odvojenom načinu
- Izvadite spremnik nakon izlaska
- Postavite naziv spremnika
- Objavljivanje portova za spremnike
- Dijeljenje podataka (montiranje volumena)
- Pokrenite spremnik interaktivno
- Zaključak
Docker je platforma koja vam omogućuje razvoj, testiranje i implementaciju aplikacija kao prijenosnih, samodovoljnih spremnika koji se pokreću gotovo bilo gdje.
Naredba
docker run
stvara spremnik iz određene slike i pokreće spremnik koristeći zadanu naredbu. To je jedna od prvih naredbi s kojom biste se trebali upoznati kada počnete raditi s Dockerom., službenu sliku Nginx koristit ćemo za prikaz različitih načina pokretanja Docker spremnika.
Naredba za pokretanje
Naredba za
docker run
ima sljedeći oblik:
docker run IMAGE
Naziv slike iz koje bi spremnik trebao biti stvoren jedini je potreban argument za naredbu
docker run
. Ako slika nije prisutna u lokalnom sustavu, izvlači se iz registra.
Ako nije navedena nijedna naredba, naredba navedena u uputama
CMD
ili
ENTRYPOINT
a izvršava se prilikom pokretanja spremnika.
Polazeći od verzije 1.13, Docker CLI je restrukturiran, a sve naredbe grupirane su u objekt s kojim komuniciraju.
Budući da naredba
run
djeluje u interakciji s spremnicima, sada je to podkomanda
docker container
. Sintaksa nove naredbe je sljedeća:
docker container run IMAGE
Još uvijek je podržana stara, sintaksa prije 1, 13. Pod haubom naredba za
docker run
je alias za
docker container run
. Korisnike se potiče da koriste novu sintaksu naredbi.
Popis svih opcija
docker container run
se na stranici dokumentacije Docker.
Pokrenite kontejner u prvi plan
Prema zadanim postavkama, kada nije data opcija naredbi
docker run
, root proces se pokreće u prvom planu. To znači da su standardni ulaz, izlaz i pogreške iz korijenskog postupka pričvršćeni na terminalnoj sesiji.
docker container run nginx
Izlaz nginx procesa bit će prikazan na vašem terminalu. Budući da nema veze s web poslužiteljem, terminal je prazan.
Za zaustavljanje spremnika završite pokretani Nginx postupak pritiskom na
CTRL+C
Pokrenite spremnik u odvojenom načinu
Kako biste zadržali spremnik pri izlasku iz sesije terminala, pokrenite ga u odvojenom načinu. To je slično pokretanju Linux procesa u pozadini.
Upotrijebite opciju
-d
za pokretanje odvojenog spremnika:
docker container run -d nginx
050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa
Izdvojeni spremnik zaustavit će se nakon završetka korijenskog procesa.
Možete popisati pokrenute spremnike pomoću naredbe
docker container ls
.
Za priključivanje vašeg terminala na proces odvojenog korijena spremnika upotrijebite naredbu za
docker container attach
.
Izvadite spremnik nakon izlaska
Prema zadanim postavkama, kada spremnik izlazi, njegov datotečni sustav ostaje na glavnom sustavu.
Opcije
--rm
upućuju naredbu
docker run
--rm
da ukloni spremnik kad se automatski
--rm
:
docker container run --rm nginx
Slika Nginx možda nije najbolji primjer za čišćenje datotečnog sustava spremnika nakon izlaska spremnika. Ova se opcija obično koristi na spremnicima prednjeg plana koji obavljaju kratkoročne zadatke poput testova ili sigurnosnih kopija baze podataka.
Postavite naziv spremnika
U Dockeru se svaki spremnik identificira s njegovim
UUID
i nazivom. Prema zadanim postavkama, ako nije izričito postavljeno, naziv spremnika automatski generira demon Docker.
Upotrijebite opciju
--name
da biste spremniku dodijelili prilagođeno ime:
docker container run -d --name my_nginx nginx
Naziv spremnika mora biti jedinstven. Ako pokušate pokrenuti drugi spremnik s istim nazivom, dobit ćete pogrešku sličnu ovom:
docker: Error response from daemon: Conflict. The container name "/my_nginx" is already in use by container "9…c". You have to remove (or rename) that container to be able to reuse that name.
Pokrenite
docker container ls -a
za popis svih spremnika i pogledajte njihova imena:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g 'daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx
Značajna imena korisna su za upućivanje spremnika unutar Docker mreže ili prilikom izvršavanja CLI naredbi docker.
Objavljivanje portova za spremnike
Prema zadanim postavkama, ako nijedan port nije objavljen, proces koji se odvija u spremniku dostupan je samo iz spremnika.
Objavljivanje portova znači preslikavanje portova spremnika u portove glavnog računala kako bi portovi bili dostupni uslugama izvan Dockera.
Za objavu priključka koristite
-p
opcije na sljedeći način:
-p host_ip:host_port:container_port/protocol
- Ako nije
host_ip
, on se postavlja na0.0.0.0
. Ako nije navedenprotocol
, podrazumijeva TCP. Za objavljivanje više portova koristite mogućnosti s višestrukim-p
.
Da preslikate TCP port 80 (nginx) u spremnik za port 8080 na hosthohovom sučelju localhost, pokrenite:
docker container run --name web_server -d -p 8080:80 nginx
Možete provjeriti je li port objavljen tako da otvorite
http://localhost:8080
u svom pregledniku ili pokrenete sljedeću naredbu
curl
na Docker hostu:
curl -I
Izlaz će izgledati ovako:
HTTP/1.1 200 OK Server: nginx/1.17.6 Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT Connection: keep-alive ETag: "5dd3e500-264" Accept-Ranges: bytes
Dijeljenje podataka (montiranje volumena)
Kad se spremnik zaustavi, uklanjaju se svi podaci generirani spremnikom. Docker volumeni su preferirani način da podaci ostanu i dijele ih u više spremnika.
Da biste stvorili i upravljali volumenima, koristite
-p
opcije na sljedeći način:
-v host_src:container_dest:options
-
host_src
može biti apsolutni put do datoteke ili mape na host ili imenovanom volumen.Thecontainer_dest
je apsolutni put do datoteke ili mape na spremniku.Opcije mogu bitirw
(čitanje-pisanje) iro
(samo za čitanje). Ako nije navedena nijedna opcija, ona ćerw
.
Da bismo objasnili kako to radi, stvorimo direktoriju na host i stavimo datoteku
index.html
u nju:
mkdir public_html
echo "Testing Docker Volumes" > public_html/index.html
Zatim montirajte mapu
public_html
u
/usr/share/nginx/html
u spremniku:
docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx
Umjesto da odredimo apsolutni put do direktorija
public_html
, koristimo naredbu
$(pwd)
koja ispisuje trenutnu radnu mapu.
Sada, ako u preglednik upišete
http://localhost:8080
, trebali biste vidjeti sadržaj datoteke
index.html
. Također možete koristiti
curl
:
curl
Pokrenite spremnik interaktivno
Kada se bavite interaktivnim procesima kao što je
bash
, koristite opcije
-i
i
-t
da biste pokrenuli spremnik.
Opcije
-it
nalažu Docker-u da drži standardni ulaz priključen na terminalu i dodijeli pseudo-tty:
docker container run -it nginx /bin/bash
Bash školjka spremnika bit će pričvršćena na terminal, a naredbeni redak će se promijeniti:
root@1da70f1937f5:/#
Sada, možete komunicirati s ljuskom spremnika i pokrenuti bilo koju naredbu unutar njega.
U ovom primjeru dali smo naredbu (
/bin/bash
) kao argument naredbi docker
docker run
koja je izvršena umjesto one koja je navedena u Dockerfileu.
Zaključak
Docker je standard za pakiranje i pokretanje aplikacija i bitna komponenta CI / CD, automatizacije i DevOps.
Naredba za pokretanje spremnika docker koristi se za stvaranje i pokretanje Docker spremnika.
lučki radnikEcho naredba u Linuxu s primjerima

Naredba echo jedna je od najosnovnijih i najčešće korištenih naredbi u Linuxu. Argumenti proslijeđeni za odjek ispisuju se na standardni izlaz.
Naredba Curl u Linuxu s primjerima

Curl je alat naredbenog retka za prijenos podataka sa ili na poslužitelj dizajniran za rad bez interakcije korisnika. U ovom ćemo vam vodiču pokazati kako koristiti alat za kovrče kroz praktične primjere i detaljna objašnjenja najčešćih opcija za uvijanje.
Naredba za ponovno pokretanje (ponovno pokretanje) Linuxa

Ako koristite Linux bez poslužitelja, morate znati kako ponovno pokrenuti sustav iz naredbenog retka. U ovom ćemo vodiču objasniti kako koristiti naredbe systemctl i shutdown za ponovno pokretanje vašeg Linux računala.