Android

Docker run command na may mga halimbawa

Docker Tutorial: Basics of the Docker Run Command

Docker Tutorial: Basics of the Docker Run Command

Talaan ng mga Nilalaman:

Anonim

Ang Docker ay isang platform na nagbibigay-daan sa iyo upang makabuo, magsubok, at mag-deploy ng mga application bilang portable, sapat na mga self container na tumatakbo kahit saan.

Ang utos ng docker run lumilikha ng isang lalagyan mula sa isang naibigay na imahe at sinisimulan ang lalagyan gamit ang isang naibigay na utos. Ito ay isa sa mga unang utos na dapat mong maging pamilyar sa simula ng pagtatrabaho sa Docker., gagamitin namin ang opisyal na imahe ng Nginx upang ipakita ang iba't ibang mga paraan upang magpatakbo ng isang lalagyan ng Docker.

Docker Run Command

Ang utos ng docker run tumatagal ng sumusunod na form:

docker run IMAGE

Ang pangalan ng imahe mula sa kung saan ang lalagyan ay dapat nilikha ay ang tanging kinakailangang argumento para sa utos ng docker run docker. Kung ang imahe ay hindi naroroon sa lokal na sistema, ito ay nakuha mula sa pagpapatala.

Kung walang tinukoy na utos, ang utos na tinukoy sa Dockerfile's CMD o ENTRYPOINT tagubilin ay isinasagawa kapag pinapatakbo ang lalagyan.

Simula mula sa bersyon 1.13, ang Docker CLI ay naayos, at lahat ng mga utos ay na-grupo sa ilalim ng bagay na nakikipag-ugnay sa kanila.

Dahil ang run command ay nakikipag-ugnay sa mga lalagyan, ngayon ito ay isang subcommand ng docker container ng docker. Ang syntax ng bagong utos ay ang mga sumusunod:

docker container run IMAGE

Ang luma, pre 1.13 syntax ay sinusuportahan pa rin. Sa ilalim ng talukbong, ang utos ng docker run ay isang alyas sa docker container run . Hinihikayat ang mga gumagamit na gamitin ang bagong synt syntax.

Ang isang listahan ng lahat ng mga pagpipilian sa docker container run ay matatagpuan sa pahina ng dokumentasyon ng Docker.

Patakbuhin ang lalagyan sa Foreground

Bilang default, kapag walang pagpipilian na ibinigay sa utos ng docker run , ang proseso ng ugat ay sinimulan sa harapan. Nangangahulugan ito na ang karaniwang pag-input, output, at pagkakamali mula sa proseso ng ugat ay nakakabit sa sesyon ng terminal.

docker container run nginx

Ang output ng proseso ng ngx ay ipapakita sa iyong terminal. Dahil, walang mga koneksyon sa webserver, walang laman ang terminal.

Upang ihinto ang lalagyan, wakasan ang pagpapatakbo ng proseso ng Nginx sa pamamagitan ng pagpindot sa CTRL+C

Patakbuhin ang lalagyan sa Natanggal na Mode

Upang mapanatili ang lalagyan kapag lumabas ka ng session session, simulan ito sa isang hiwalay na mode. Katulad ito sa pagpapatakbo ng isang proseso ng Linux sa background.

Gamitin ang -d pagpipilian upang magsimula ng isang hiwalay na lalagyan:

docker container run -d nginx

050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa

Ang harangin na lalagyan ay hihinto kapag natapos ang proseso ng ugat.

Maaari mong ilista ang mga tumatakbo na lalagyan gamit ang utos ng docker container ls .

Upang i-attach ang iyong terminal sa proseso ng ugat na ugat ng lalagyan, gamitin ang utos ng docker container attach .

Alisin ang lalagyan Pagkatapos Lumabas

Bilang default, kapag lumabas ang lalagyan, ang system system nito ay nagpapatuloy sa host system.

Ang mga pagpipilian --rm nagsasabi sa --rm docker run command na alisin ang lalagyan kapag awtomatikong lumabas ito:

docker container run --rm nginx

Ang imahe ng Nginx ay maaaring hindi ang pinakamahusay na halimbawa upang linisin ang file system ng lalagyan pagkatapos lumabas ang lalagyan. Ang pagpipiliang ito ay karaniwang ginagamit sa mga foreground container na nagsasagawa ng mga panandaliang gawain tulad ng mga pagsubok o backup ng database.

Itakda ang Pangalan ng lalagyan

Sa Docker, ang bawat lalagyan ay nakilala sa pamamagitan ng UUID at pangalan nito. Bilang default, kung hindi malinaw na itinakda, ang pangalan ng lalagyan ay awtomatikong nabuo ng Docker daemon.

Gamitin ang pagpipilian sa --name upang magtalaga ng isang pasadyang pangalan sa lalagyan:

docker container run -d --name my_nginx nginx

Ang pangalan ng lalagyan ay dapat na natatangi. Kung susubukan mong simulan ang isa pang lalagyan na may parehong pangalan, makakakuha ka ng isang error na katulad nito:

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.

Patakbuhin ang docker container ls -a upang ilista ang lahat ng mga lalagyan, at makita ang kanilang mga pangalan:

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

Ang mga makabuluhang pangalan ay kapaki-pakinabang upang isangguni ang lalagyan sa loob ng isang network ng Docker o kapag nagpapatakbo ng mga utos ng docker CLI.

Pag-publish ng Mga Ports na lalagyan

Bilang default, kung walang nai-publish na mga port, ang proseso na tumatakbo sa lalagyan ay maa-access lamang mula sa loob ng lalagyan.

Ang paglalathala ng mga port ay nangangahulugan ng pagma-map sa mga container port sa mga host machine port upang ang mga port ay magagamit sa mga serbisyo sa labas ng Docker.

Upang mai-publish ang isang port gamitin ang mga pagpipilian na -p tulad ng sumusunod:

-p host_ip:host_port:container_port/protocol

  • Kung walang tinukoy na host_ip , ito ay host_ip sa 0.0.0.0 . Kung walang tinukoy na protocol , ito ay nagbabawas sa TCP.Upang mag-publish ng maramihang mga port, gumamit ng maramihang mga opsyon.

Upang i-mapa ang port ng TCP 80 (nginx) sa lalagyan upang port 8080 sa host localhost interface, tatakbo ka:

docker container run --name web_server -d -p 8080:80 nginx

Maaari mong i-verify na ang port ay nai-publish sa pamamagitan ng pagbubukas ng http://localhost:8080 sa iyong browser o pagpapatakbo ng sumusunod na utos ng curl sa host ng Docker:

curl -I

Ang output ay magiging hitsura ng isang bagay tulad nito:

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

Pagbabahagi ng Data (Pag-mount ng Mga volume)

Kapag tumigil ang isang lalagyan, ang lahat ng data na nabuo ng lalagyan ay tinanggal. Ang Docker volume ay ang ginustong paraan upang gawin ang data na magpatuloy at ibahagi ito sa maraming mga lalagyan.

Upang lumikha at pamahalaan ang dami, gamitin ang mga pagpipilian na -p tulad ng sumusunod:

-v host_src:container_dest:options

  • Ang host_src maaaring maging isang ganap na landas sa isang file o direktoryo sa host o isang pinangalanang volume.Ang container_dest ay isang ganap na landas sa isang file o direktoryo sa lalagyan.Options ay maaaring maging rw (read-write) at ro (read-only). Kung walang tinukoy na pagpipilian, ito ay nagbabala sa rw .

Upang ipaliwanag kung paano ito gumagana, gumawa tayo ng isang direktoryo sa host at maglagay ng isang index.html file sa loob nito:

mkdir public_html echo "Testing Docker Volumes" > public_html/index.html

Susunod, ilagay ang direktoryo ng public_html /usr/share/nginx/html sa lalagyan:

docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx

Sa halip na tukuyin ang ganap na landas sa direktoryo ng public_html , ginagamit namin ang utos na $(pwd) , na naglimbag sa kasalukuyang direktoryo ng pagtatrabaho.

Ngayon, kung nag-type ka ng http://localhost:8080 sa iyong browser, dapat mong makita ang mga nilalaman ng index.html file. Maaari mo ring gamitin ang curl :

curl

Testing Docker Volumes

Patakbuhin ang Container

Kapag nakikipag-ugnayan sa mga interactive na proseso tulad ng bash , gamitin ang -i at -t pagpipilian upang simulan ang lalagyan.

Ang mga pagpipilian na -ituro ay nagsasabi sa Docker na panatilihin ang karaniwang input na nakakabit sa terminal at maglaan ng isang pseudo-tty:

docker container run -it nginx /bin/bash

Ang shell ng lalagyan ng Bash ay idikit sa terminal, at magbabago ang command prompt:

root@1da70f1937f5:/#

Ngayon, maaari kang makipag-ugnay sa shell ng lalagyan at magpatakbo ng anumang utos sa loob nito.

Sa halimbawang ito, nagbigay kami ng isang utos ( /bin/bash ) bilang isang argumento sa docker run command na naisakatuparan sa halip na isang tinukoy sa Dockerfile.

Konklusyon

Ang Docker ay ang pamantayan para sa packaging at pag-aalis ng mga aplikasyon at isang mahalagang sangkap ng CI / CD, automation, at DevOps.

Ang docker container run command ay ginagamit upang lumikha at magpatakbo ng mga lalagyan ng pantalan.

docker