Kawm Docker, Ntu 6: Ua haujlwm nrog cov ntaub ntawv

Nyob rau hauv niaj hnub no ib feem ntawm kev txhais lus ntawm ib tug series ntawm cov ntaub ntawv hais txog Docker, peb yuav tham txog kev ua hauj lwm nrog cov ntaub ntawv. Tshwj xeeb, txog Docker ntim. Nyob rau hauv cov ntaub ntawv no, peb pheej piv Docker programming mechanisms nrog ntau yam edible analogies. Peb yuav tsis deviate los ntawm qhov kev lig kev cai ntawm no. Cia cov ntaub ntawv hauv Docker yog txuj lom. Muaj ntau yam txuj lom hauv ntiaj teb, thiab Docker muaj ntau txoj hauv kev los ua haujlwm nrog cov ntaub ntawv.

β†’ Part 1: Lub hauv paus
β†’ Ntu 2: Cov ntsiab lus thiab cov ntsiab lus
β†’ Ntu 3: Dockerfiles
β†’ Ntu 4: Txo qhov loj ntawm cov duab thiab ua kom lawv lub rooj sib txoos ceev
β†’ Part 5: lus txib
β†’ Ntu 6: ua haujlwm nrog cov ntaub ntawv

Kawm Docker, Ntu 6: Ua haujlwm nrog cov ntaub ntawv

Thov nco ntsoov tias cov khoom no tau npaj siv Docker engine version 18.09.1 ​​​​thiab API version 1.39.

Cov ntaub ntawv hauv Docker tuaj yeem khaws cia ib ntus lossis mus tas li. Cia peb pib nrog cov ntaub ntawv ib ntus.

Khaws cov ntaub ntawv ib ntus

Muaj ob txoj hauv kev los tswj cov ntaub ntawv ib ntus hauv Docker ntim.

Los ntawm lub neej ntawd, cov ntaub ntawv tsim los ntawm daim ntawv thov ua haujlwm hauv lub thawv ntim tau muab khaws cia rau hauv cov thawv ntim uas sau tau. Txhawm rau kom cov txheej txheem no ua haujlwm, tsis muaj dab tsi tshwj xeeb yuav tsum tau teeb tsa. Nws hloov tawm pheej yig thiab zoo siab. Daim ntawv thov tsuas yog xav tau txuag cov ntaub ntawv thiab txuas ntxiv ua nws tus kheej. Txawm li cas los xij, tom qab lub thawv tso tseg, cov ntaub ntawv khaws cia hauv txoj kev yooj yim kuj yuav ploj mus.

Kev khaws cia cov ntaub ntawv ib ntus hauv Docker yog lwm qhov kev daws teeb meem uas tsim nyog rau cov xwm txheej uas yuav tsum muaj qib siab dua ntawm kev ua tau zoo dua piv rau qhov ua tiav tau siv cov txheej txheem khaws cov ntaub ntawv ib ntus. Yog tias koj tsis xav tau koj cov ntaub ntawv khaws cia ntev dua li lub thawv uas muaj, koj tuaj yeem txuas mus rau lub thawv tmpfs - cov ntaub ntawv khaws cia ib ntus uas siv tus tswv tsev RAM. Qhov no yuav ua rau kom ua tiav cov ntaub ntawv sau thiab nyeem ntawv.

Nws feem ntau tshwm sim tias cov ntaub ntawv yuav tsum tau muab khaws cia txawm tias tom qab lub thawv tso tseg. Txhawm rau ua qhov no, peb xav tau cov ntaub ntawv tsis tu ncua cia cov txheej txheem.

Cov ntaub ntawv tsis tu ncua

Muaj ob txoj hauv kev los ua kom cov ntaub ntawv lub neej ntev dua li lub thawv ntim khoom. Ib txoj hauv kev yog siv bind mount technology. Nrog rau txoj hauv kev no, koj tuaj yeem mount, piv txwv li, lub neej tiag tiag rau hauv lub thawv. Cov txheej txheem sab nraud ntawm Docker kuj tseem tuaj yeem ua haujlwm nrog cov ntaub ntawv khaws cia hauv cov ntawv tais ceev tseg. Yog li ntawd saib tmpfs mount thiab khi mount technology.

Kawm Docker, Ntu 6: Ua haujlwm nrog cov ntaub ntawv
Mounting tmpfs thiab khi mount

Qhov tsis zoo ntawm kev siv cov cuab yeej khi mount yog tias nws siv cov ntaub ntawv nyuaj rau thaub qab, cov ntaub ntawv tsiv teb tsaws, cov ntaub ntawv sib koom ntawm ntau lub ntim. Nws yog qhov zoo dua los siv Docker ntim rau cov ntaub ntawv tsis tu ncua.

Volumes Docker

Lub ntim yog cov ntaub ntawv kaw lus uas nyob rau ntawm lub tshuab hosting sab nraum lub thawv. Cov ntim tau tsim thiab tswj los ntawm Docker. Nov yog cov khoom tseem ceeb ntawm Docker ntim:

  • Lawv yog ib txoj kev khaws cia cov ntaub ntawv mus tas li.
  • Lawv muaj kev ywj pheej thiab sib cais los ntawm cov thawv ntim khoom.
  • Lawv tuaj yeem sib koom ntawm cov thawv sib txawv.
  • Lawv tso cai rau koj los npaj kev nyeem ntawv thiab sau cov ntaub ntawv zoo.
  • Cov ntim tuaj yeem muab tso rau ntawm cov chaw muab kev pabcuam huab cua nyob deb.
  • Lawv tuaj yeem raug encrypted.
  • Lawv tuaj yeem muab cov npe.
  • Lub thawv tuaj yeem npaj rau cov neeg ua ntej ntawm cov ntim nrog cov ntaub ntawv.
  • Lawv yooj yim rau kev sim.

Raws li koj tuaj yeem pom, Docker ntim muaj cov khoom zoo heev. Wb tham txog yuav ua li cas los tsim lawv.

Tsim cov ntim

Cov ntim tuaj yeem tsim tau siv Docker lossis API thov.

Nov yog cov lus qhia hauv Dockerfile uas tso cai rau koj los tsim ib lub ntim thaum pib lub thawv.

VOLUME /my_volume

Thaum siv cov lus qhia zoo sib xws, Docker, tom qab tsim lub thawv, yuav tsim ib lub ntim uas muaj cov ntaub ntawv uas twb muaj lawm hauv qhov chaw teev tseg. Nco ntsoov tias yog tias koj tsim ib lub ntim siv Dockerfile, qhov no tsis txo koj ntawm qhov xav tau los qhia qhov ntim qhov taw tes.

Koj tuaj yeem tsim cov ntim hauv Dockerfile siv JSON hom.

Tsis tas li ntawd, ntim tuaj yeem tsim tau siv cov cuab yeej kab hais kom ua thaum lub thawv ua haujlwm.

Ua haujlwm nrog ntim los ntawm kab hais kom ua

▍ Volume creation

Koj tuaj yeem tsim ib lub ntim standalone nrog cov lus txib hauv qab no:

docker volume create β€”-name my_volume

▍ Tshawb nrhiav cov ntaub ntawv hais txog ntim

Txhawm rau saib cov npe ntawm Docker ntim, siv cov lus txib hauv qab no:

docker volume ls

Koj tuaj yeem tshawb xyuas qhov ntim tshwj xeeb zoo li no:

docker volume inspect my_volume

▍ Tshem tawm lub ntim

Koj tuaj yeem rho tawm ib lub ntim zoo li no:

docker volume rm my_volume

Txhawm rau tshem tawm tag nrho cov ntim uas tsis siv los ntawm cov thawv, koj tuaj yeem siv cov lus txib hauv qab no:

docker volume prune

Ua ntej rho tawm cov ntim, Docker yuav nug koj kom paub meej tias qhov haujlwm no.

Yog hais tias lub ntim yog txuam nrog ib lub thawv, lub ntim ntawd tsis tuaj yeem raug muab tshem tawm kom txog thaum lub ntim khoom raug muab tshem tawm. Tib lub sijhawm, txawm tias lub thawv raug tshem tawm, Docker yeej tsis nkag siab qhov no. Yog tias qhov no tshwm sim, koj tuaj yeem siv cov lus txib hauv qab no:

docker system prune

Nws yog tsim los ntxuav Docker cov peev txheej. Tom qab ua tiav cov lus txib no, koj yuav tsum muaj peev xwm tshem tawm cov ntim uas nws qhov xwm txheej yav dhau los tsis raug.

Cov --mount thiab --volume chij

Ua haujlwm nrog ntim, thaum koj hu rau cov lus txib docker, feem ntau koj yuav tau siv cov chij. Piv txwv li, los tsim ib lub ntim thaum lub thawv tsim, koj tuaj yeem siv qhov tsim no:

docker container run --mount source=my_volume, target=/container/path/for/volume my_image

Nyob rau hauv ancient sij hawm (txog 2017), tus chij tau nrov --volume. Thaum pib, tus chij no (nws tseem tuaj yeem siv rau hauv daim ntawv luv luv, ces nws zoo li -v) tau siv rau cov thawv ntim khoom ib leeg, thiab tus chij --mount - Hauv Docker Swarm ib puag ncig. Txawm li cas los xij, raws li Docker 17.06, tus chij --mount tuaj yeem siv rau hauv txhua qhov xwm txheej.

Nws yuav tsum raug sau tseg tias thaum siv tus chij --mount tus nqi ntawm cov ntaub ntawv ntxiv uas yuav tsum tau teev nyob rau hauv cov lus txib nce, tab sis, rau ntau yam, nws yog qhov zoo dua los siv tus chij tshwj xeeb no, thiab tsis yog. --volume. Chij --mount yog tib lub mechanism uas tso cai rau koj mus ua hauj lwm nrog cov kev pab cuam los yog hais kom meej volume tsav tsheb xaiv. Tsis tas li ntawd, tus chij no yooj yim dua ua haujlwm nrog.

Hauv cov piv txwv uas twb muaj lawm ntawm Docker cov ntaub ntawv tswj hwm cov lus txib, koj tuaj yeem pom ntau yam piv txwv ntawm kev siv tus chij -v. Thaum sim hloov cov lus txib no rau koj tus kheej, nco ntsoov tias cov chij --mount ΠΈ --volume siv cov qauv parameter sib txawv. Ntawd yog, koj tsis tuaj yeem hloov pauv -v rau --mount thiab tau txais ib pab neeg ua haujlwm.

Qhov sib txawv tseem ceeb ntawm --mount ΠΈ --volume yog tias thaum siv tus chij --volume tag nrho cov ntsuas tau sau ua ke hauv ib daim teb, thiab thaum siv --mount parameters yog cais.

Thaum ua haujlwm nrog --mount parameters yog sawv cev raws li tus tseem ceeb-tus nqi khub, namely, nws zoo li key=value. Cov khub no yog sib cais los ntawm commas. Ntawm no yog cov kev xaiv uas nquag siv --mount:

  • type - mount hom. Tus nqi rau tus yuam sij sib thooj tuaj yeem yog khi, ntim los yog tmpfs. Peb tab tom tham txog ntim ntawm no, uas yog, peb txaus siab rau tus nqi volume.
  • source - mount qhov chaw. Rau cov npe ntim, qhov no yog lub npe ntim. Rau cov ntim tsis muaj npe, tus yuam sij no tsis tau teev tseg. Nws tuaj yeem raug luv rau src.
  • destination - txoj hauv kev uas cov ntaub ntawv lossis cov ntawv tais ceev tseg tau nruab rau hauv lub thawv. Tus yuam sij no tuaj yeem raug luv rau dst los yog target.
  • readonly - mounts lub ntim uas yog npaj tsuas yog nyeem ntawv xwb. Kev siv tus yuam sij no yog xaiv tau, thiab tsis muaj nqi rau nws.

Ntawm no yog ib qho piv txwv ntawm kev siv --mount nrog ntau txoj kev xaiv:

docker run --mount type=volume,source=volume_name,destination=/path/in/container,readonly my_image

Cov txiaj ntsim tau los

Nov yog qee cov lus txib muaj txiaj ntsig koj tuaj yeem siv thaum ua haujlwm nrog Docker ntim:

  • docker volume create
  • docker volume ls
  • docker volume inspect
  • docker volume rm
  • docker volume prune

Ntawm no yog ib daim ntawv teev cov kev xaiv uas nquag siv rau --mount, muaj feem xyuam rau hauv cov lus txib ntawm daim ntawv docker run --mount my_options my_image:

  • type=volume
  • source=volume_name
  • destination=/path/in/container
  • readonly

Tam sim no peb tau ua tiav qhov Docker series, nws yog lub sijhawm los hais ob peb lo lus hais txog qhov twg Docker cov neeg kawm tuaj yeem mus tom ntej. no tsab xov xwm zoo heev txog Docker. no ib phau ntawv hais txog Docker (thaum yuav phau ntawv no, sim kom tau txais cov ntawv tshiab tshaj plaws ntawm nws). no Lwm phau ntawv rau cov neeg uas xav tias xyaum yog txoj hauv kev zoo tshaj plaws los kawm txog tshuab.

Nyob zoo nyeem! Dab tsi Docker cov ntaub ntawv koj xav kom cov neeg pib kawm?

Kawm Docker, Ntu 6: Ua haujlwm nrog cov ntaub ntawv

Tau qhov twg los: www.hab.com

Ntxiv ib saib