Diajar Docker, Bagian 6: Gawe sareng Data

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.

Bagian 1: Dasar
Bagian 2: istilah jeung konsép
Bagian 3: Dockerfiles
Bagian 4: Ngurangan ukuran gambar sareng nyepetkeun assembly na
Bagian 5: paréntah
Bagian 6: gawé bareng data

Diajar Docker, Bagian 6: Gawe sareng 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.

Diajar Docker, Bagian 6: Gawe sareng Data
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?

Diajar Docker, Bagian 6: Gawe sareng Data

sumber: www.habr.com

Tambahkeun komentar