Dina bagian ayeuna tina tarjamahan tina séri bahan ngeunaan Docker, urang bakal ngobrol ngeunaan gawé bareng data. Khususna, ngeunaan volume Docker. Dina bahan ieu, kami terus-terusan ngabandingkeun mékanisme programming Docker sareng sababaraha analogi anu tiasa didahar. Kami moal nyimpang tina tradisi ieu di dieu. Hayu data di Docker janten rempah. Aya seueur rempah di dunya, sareng Docker gaduh seueur cara pikeun ngerjakeun data.
Punten dicatet yén bahan ieu disiapkeun nganggo mesin Docker versi 18.09.1 sareng versi API 1.39.
Data dina Docker tiasa disimpen samentawis atanapi permanén. Hayu urang mimitian ku data samentara.
neundeun data samentara
Aya dua cara pikeun ngatur data samentawis dina wadah Docker.
Sacara standar, file anu diciptakeun ku aplikasi anu dijalankeun dina wadah disimpen dina lapisan wadah anu tiasa ditulis. Supados mékanisme ieu tiasa dianggo, teu aya anu khusus anu kedah dikonpigurasikeun. Tétéla mirah jeung riang. Aplikasina ngan saukur kedah nyimpen data sareng teraskeun ngalakukeun hal sorangan. Nanging, saatos wadahna teu aya, data anu disimpen ku cara anu saderhana ogé bakal ngaleungit.
Aya solusi anu sanés pikeun nyimpen file samentawis di Docker, cocog pikeun kasus dimana anjeun peryogi tingkat kinerja anu langkung luhur dibandingkeun sareng anu tiasa dicapai sareng mékanisme panyimpen samentawis standar. Upami anjeun henteu peryogi data anjeun pikeun disimpen langkung lami tibatan wadahna, anjeun tiasa nyambungkeun tmpfs kana wadahna - panyimpen inpormasi samentawis anu nganggo RAM host. Ieu bakal nyepetkeun operasi nulis sareng maca data.
Sering kajadian yén data kedah disimpen sanajan wadahna teu aya. Pikeun tujuan ieu, urang bakal peryogi mékanisme pikeun neundeun data pengkuh.
Panyimpen data permanén
Aya dua cara pikeun ngajantenkeun umur data langkung panjang tibatan umur wadahna. Salah sahiji cara nyaéta ngagunakeun téknologi bind mount. Kalayan pendekatan ieu, anjeun tiasa pasang, contona, folder kahirupan nyata kana wadahna. Prosés anu aya di luar Docker ogé bakal tiasa damel sareng data anu disimpen dina folder sapertos kitu. Kieu kumaha neuteup tmpfs mount sareng ngabeungkeut téknologi gunung.
Masang tmpfs sareng ngabeungkeut gunung
Karugian tina ngagunakeun téknologi bind mount nyaéta pamakeanna nyusahkeun cadangan data, migrasi data, ngabagi data diantara sababaraha wadah. Éta langkung saé ngagunakeun volume Docker pikeun neundeun data anu pengkuh.
Jilid Docker
Volume nyaéta sistem file anu aya dina mesin host di luar wadah. Jilid didamel sareng diurus ku Docker. Ieu mangrupikeun sipat utama jilid Docker:
Éta mangrupikeun sarana pikeun nyimpen inpormasi permanén.
Aranjeunna mandiri sareng dipisahkeun tina wadahna.
Éta bisa dibagikeun antara peti béda.
Éta ngamungkinkeun anjeun ngatur maca sareng nyerat data anu cekap.
Jilid tiasa disimpen dina sumberdaya panyadia awan jauh.
Éta bisa énkripsi.
Éta bisa dibéré ngaran.
Wadahna tiasa ngatur volume pikeun ngeusian data sateuacanna.
Aranjeunna merenah pikeun nguji.
Sakumaha anjeun tiasa tingali, jilid Docker gaduh sababaraha pasipatan anu saé. Hayu urang ngobrol ngeunaan kumaha carana nyieun eta.
Nyiptakeun Jilid
Jilid tiasa didamel nganggo pamundut Docker atanapi API.
Ieu mangrupikeun paréntah dina Dockerfile anu ngamungkinkeun anjeun nyiptakeun volume nalika ngamimitian wadah.
VOLUME /my_volume
Nalika nganggo paréntah anu sami, Docker, saatos nyiptakeun wadahna, bakal nyiptakeun volume anu ngandung data anu parantos aya di lokasi anu ditangtukeun. Catet yén upami anjeun nyiptakeun volume nganggo Dockerfile, ieu henteu ngaleungitkeun anjeun kedah netepkeun titik gunung volume.
Anjeun ogé tiasa nyiptakeun jilid dina Dockerfile nganggo format JSON.
Salaku tambahan, jilid tiasa didamel nganggo garis paréntah nalika wadahna dijalankeun.
Gawe sareng jilid tina garis paréntah
▍ Nyiptakeun volume
Anjeun tiasa nyiptakeun volume mandiri kalayan paréntah di handap ieu:
docker volume create —-name my_volume
▍ Pilarian inpormasi ngeunaan jilid
Pikeun ningali daptar volume Docker, paké paréntah di handap ieu:
docker volume ls
Anjeun tiasa ngajalajah volume khusus sapertos kieu:
docker volume inspect my_volume
▍Mupus volume
Anjeun tiasa ngahapus volume sapertos kieu:
docker volume rm my_volume
Pikeun mupus sadaya jilid anu henteu dianggo ku wadah, anjeun tiasa nganggo paréntah di handap ieu:
docker volume prune
Sateuacan ngahapus jilid, Docker bakal naroskeun anjeun pikeun mastikeun operasi ieu.
Lamun volume pakait sareng wadahna, volume teu bisa dihapus nepi ka wadahna pakait dihapus. Dina waktos anu sami, sanaos wadahna dihapus, Docker henteu salawasna ngartos ieu. Upami ieu kajantenan, anjeun tiasa nganggo paréntah di handap ieu:
docker system prune
Éta dirancang pikeun ngabersihan sumberdaya Docker. Saatos ngajalankeun paréntah ieu, anjeun kedah tiasa mupus jilid anu statusna teu leres ditangtukeun.
Bandéra --mount sareng --volume
Pikeun digawekeun ku jilid anjeun, nalika nelepon paréntah docker, anjeun bakal mindeng kudu make bandéra. Salaku conto, pikeun nyiptakeun volume nalika nyiptakeun wadah, anjeun tiasa nganggo konstruksi ieu:
docker container run --mount source=my_volume, target=/container/path/for/volume my_image
Baheula (dugi ka 2017), bandéra éta populér --volume. Mimitina, bandéra ieu (éta ogé tiasa dianggo dina bentuk anu disingkat, teras sigana -v) dipaké pikeun wadahna mandiri, jeung bandéra --mount - di lingkungan Docker Swarm. Sanajan kitu, sakumaha tina Docker 17.06, bandéra --mount tiasa dianggo dina skenario naon waé.
Ieu kudu dicatet yén lamun ngagunakeun bandéra --mount jumlah data tambahan nu kudu dieusian dina paréntah naek, tapi, pikeun sababaraha alesan, eta leuwih hade migunakeun bandéra ieu tinimbang --volume. Bandéra --mount - Ieu hiji-hijina mékanisme nu ngidinan Anjeun pikeun digawekeun ku jasa atawa nangtukeun parameter supir volume. Salaku tambahan, bandéra ieu langkung gampang dianggo.
Dina conto paréntah anu aya anu ditujukeun pikeun damel sareng data di Docker, anjeun tiasa mendakan seueur conto ngagunakeun bandéra. -v. Nalika nyobian adaptasi paréntah ieu pikeun diri anjeun, émut yén bandéra --mount и --volume ngagunakeun format parameter béda. Hartina, anjeun teu bisa saukur ngaganti -v dina --mount sareng kéngingkeun tim damel.
Beda utama antara --mount и --volume nya éta nalika ngagunakeun bandéra --volume kabéh parameter dikumpulkeun babarengan dina hiji widang, sarta lamun dipaké --mount parameter dipisahkeun.
Nalika damel sareng --mount Parameter digambarkeun salaku pasangan konci-nilai, nyaéta, sigana key=value. Pasangan ieu dipisahkeun ku koma. Ieu mangrupikeun pilihan anu biasa dianggo --mount:
type - tipe Gunung. Nilai pikeun konci pakait tiasa ngabeungkeut, jilid atawa tmpfs. Urang ngobrol ngeunaan volume dieu, nyaeta, urang museurkeun nilai volume.
source - Gunung sumber. Pikeun jilid ngaranna, ieu nami jilid. Pikeun jilid anu teu dingaranan, konci ieu henteu dieusian. Bisa disingget jadi src.
destination - jalur dimana file atanapi folder dipasang dina wadahna. konci ieu bisa disingget jadi dst atawa target.
readonly - mounts volume anu dimaksud ukur keur maca. Konci ieu opsional sareng henteu ngagaduhan nilai anu ditugaskeun.
Ieu conto pamakean --mount kalawan loba parameter:
docker run --mount type=volume,source=volume_name,destination=/path/in/container,readonly my_image
hasil
Ieu sababaraha paréntah anu mangpaat anu anjeun tiasa dianggo nalika damel sareng jilid Docker:
docker volume create
docker volume ls
docker volume inspect
docker volume rm
docker volume prune
Ieu daptar pilihan anu biasa dianggo pikeun --mount, lumaku dina paréntah kawas docker run --mount my_options my_image:
type=volume
source=volume_name
destination=/path/in/container
readonly
Ayeuna urang parantos réngsé séri Docker ieu, waktosna nyarios sababaraha kecap ngeunaan dimana murid Docker tiasa angkat salajengna. di dieu artikel alus hébat ngeunaan Docker. di dieu buku ngeunaan Docker (nalika ngagaleuh buku ieu, cobian kéngingkeun édisi pangénggalna). di dieu buku sejen pikeun maranéhanana anu nganggap prakték téh kalawan cara anu pangalusna pikeun neuleuman téhnologi.
Pamiarsa Hadirin! Bahan naon ngeunaan Docker anu anjeun nyarankeun pikeun pamula diajar?