Docker Tutorial: Basics of the Docker Run Command
Cuprins:
- Docker Run Command
- Rulați containerul în prim plan
- Rulați containerul în modul detașat
- Scoateți containerul după ieșire
- Setați numele containerului
- Editarea porturilor de containere
- Partajarea datelor (montarea volumelor)
- Rulați containerul în mod interactiv
- Concluzie
Docker este o platformă care vă permite să dezvoltați, să testați și să implementați aplicații ca containere portabile, autosuficiente, care rulează practic oriunde.
Comanda
docker run
creează un container dintr-o imagine dată și pornește containerul folosind o comandă dată. Este una dintre primele comenzi cu care ar trebui să vă familiarizați atunci când începeți să lucrați cu Docker., vom folosi imaginea oficială Nginx pentru a arăta diverse modalități de a rula un container Docker.
Docker Run Command
Comanda de
docker run
are următoarea formă:
docker run IMAGE
Numele imaginii din care ar trebui creat containerul este singurul argument necesar pentru comanda
docker run
. Dacă imaginea nu este prezentă pe sistemul local, aceasta este extrasă din registru.
Dacă nu este specificată nicio comandă, comanda specificată în instrucțiunile
CMD
sau
ENTRYPOINT
ale
ENTRYPOINT
este executată la rularea containerului.
Pornind de la versiunea 1.13, Docker CLI a fost restructurat și toate comenzile au fost grupate sub obiectul cu care interacționează.
Întrucât comanda de
run
interacționează cu containerele, acum este o subcomandă a
docker container
. Sintaxa noii comenzi este următoarea:
docker container run IMAGE
Vechea, pre 1.13 sintaxa este încă acceptată. Sub capotă, comanda
docker run
este un alias pentru
docker container run
. Utilizatorii sunt încurajați să utilizeze noua sintaxă a comenzii.
O listă cu toate opțiunile de
docker container run
poate fi găsită pe pagina de documentare Docker.
Rulați containerul în prim plan
În mod implicit, atunci când nu este oferită nicio opțiune pentru comanda
docker run
, procesul root este început în prim plan. Aceasta înseamnă că intrarea, ieșirea și eroarea standard din procesul root sunt atașate la sesiunea terminal.
docker container run nginx
Ieșirea procesului nginx va fi afișată pe terminalul dvs. Din moment ce nu există conexiuni cu serverul web, terminalul este gol.
Pentru a opri containerul, încheiați procesul Nginx rulat apăsând
CTRL+C
Rulați containerul în modul detașat
Pentru a menține containerul în funcțiune când ieșiți din sesiunea terminalului, porniți-l într-un mod detașat. Acest lucru este similar cu rularea unui proces Linux în fundal.
Folosiți opțiunea
-d
pentru a porni un container detașat:
docker container run -d nginx
050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa
Containerul detașat se va opri atunci când procesul de rădăcină este încheiat.
Puteți lista containerele care rulează folosind comanda
docker container ls
.
Pentru a atașa terminalul dvs. la procesul de rădăcină a containerului detașat, utilizați comanda de
docker container attach
.
Scoateți containerul după ieșire
În mod implicit, la expirarea containerului, sistemul său de fișiere persistă pe sistemul gazdă.
Opțiunile
--rm
indică comanda
--rm
docker run
pentru a elimina containerul când iese automat:
docker container run --rm nginx
Imaginea Nginx nu poate fi cel mai bun exemplu pentru a curăța sistemul de fișiere al containerului după ieșirea containerului. Această opțiune este de obicei folosită pe containerele prim-plan care efectuează sarcini pe termen scurt, cum ar fi teste sau copii de rezervă ale bazei de date.
Setați numele containerului
În Docker, fiecare container este identificat prin
UUID
și nume. În mod implicit, dacă nu este setat în mod explicit, numele containerului este generat automat de daemon Docker.
Utilizați opțiunea
--name
pentru a atribui un nume personalizat containerului:
docker container run -d --name my_nginx nginx
Numele containerului trebuie să fie unic. Dacă încercați să porniți un alt container cu același nume, veți primi o eroare similară cu aceasta:
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.
Rulați
docker container ls -a
pentru a lista toate containerele și vedeți numele acestora:
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
Numele semnificative sunt utile pentru a face referire la containerul dintr-o rețea Docker sau la rularea comenzilor CLI ale docker-ului.
Editarea porturilor de containere
În mod implicit, dacă nu sunt publicate porturi, procesul care rulează în container este accesibil numai din interiorul containerului.
Publicarea porturilor înseamnă maparea porturilor containerului către porturile mașinii gazdă, astfel încât porturile să fie disponibile pentru serviciile din afara Docker.
Pentru a publica un port, utilizați opțiunile
-p
după cum urmează:
-p host_ip:host_port:container_port/protocol
- Dacă nu este specificat nici un
host_ip, acesta este implicit la0.0.0.0. Dacă nu este specificat niciunprotocol, acesta este implicit la TCP.Pentru a publica mai multe porturi, utilizați mai multe opțiuni-p.
Pentru a face maparea portului TCP 80 (nginx) din container la portul 8080 pe interfața localhost gazdă, ar trebui să rulați:
docker container run --name web_server -d -p 8080:80 nginx
Puteți verifica dacă portul este publicat prin deschiderea
http://localhost:8080
în browser sau rulând următoarea comandă
curl
pe gazda Docker:
curl -I
Rezultatul va arăta astfel:
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
Partajarea datelor (montarea volumelor)
Când un container este oprit, toate datele generate de container sunt eliminate. Volumele Docker sunt modalitatea preferată de a face datele să persiste și să le partajeze în mai multe containere.
Pentru a crea și gestiona volume, utilizați opțiunile
-p
după cum urmează:
-v host_src:container_dest:options
-
host_srcpoate fi o cale absolută către un fișier sau director de pe gazdă sau un volum numit.container_desteste o cale absolută către un fișier sau director de pe container. Opțiunile pot firw(read-write) șiro(numai citire)). Dacă nu este specificată nicio opțiune, aceasta este implicită înrw.
Pentru a explica cum funcționează acest lucru, să creăm un director pe gazdă și să introducem un fișier
index.html
:
mkdir public_html
echo "Testing Docker Volumes" > public_html/index.html
Apoi, montați directorul
public_html
în
/usr/share/nginx/html
în container:
docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx
În loc să specificăm calea absolută către directorul
public_html
, folosim comanda
$(pwd)
, care tipărește directorul de lucru curent.
Acum, dacă introduceți
http://localhost:8080
în browserul dvs., ar trebui să vedeți conținutul fișierului
index.html
. Puteți utiliza, de asemenea,
curl
:
curl
Rulați containerul în mod interactiv
Atunci când aveți de-a face cu procesele interactive precum
bash
, utilizați opțiunile
-i
și
-t
pentru a porni containerul.
Opțiunile -it îi recomandă lui Docker să păstreze intrarea standard atașată terminalului și să aloce o pseudo-acțiune:
docker container run -it nginx /bin/bash
Carcasa Bash a containerului va fi atașată la terminal, iar promptul de comandă se va schimba:
root@1da70f1937f5:/#
Acum, puteți interacționa cu shell-ul containerului și puteți rula orice comandă în interiorul acestuia.
În acest exemplu, am furnizat o comandă (
/bin/bash
) ca argument la comanda
docker run
care a fost executată în loc de cea specificată în Dockerfile.
Concluzie
Docker este standardul pentru ambalarea și implementarea aplicațiilor și o componentă esențială a CI / CD, automatizare și DevOps.
Comanda
docker container run
este folosită pentru a crea și rula containere Docker.
Comanda ecou în linux cu exemple
Comanda ecou este una dintre cele mai de bază și frecvent utilizate comenzi în Linux. Argumentele transmise ecoului sunt tipărite la ieșirea standard.
Curbați comanda în linux cu exemple
Curl este un utilitar pentru linia de comandă pentru transferul datelor de pe sau către un server proiectat să funcționeze fără interacțiunea utilizatorului. În acest tutorial, vă vom arăta cum să folosiți instrumentul de ondulare prin exemple practice și explicații detaliate ale celor mai comune opțiuni de ondulare.
Linux taie comanda cu exemple
Cut este un utilitar pentru linia de comandă care vă permite să tăiați părți din linii din fișierele specificate sau datele conectate și să imprimați rezultatul la ieșirea standard. În acest tutorial, vă vom arăta cum să utilizați comanda tăiere Linux prin exemple practice și explicații detaliate ale celor mai comune opțiuni de tăiere.







