Докерди үйрөнүү, 6-бөлүк: Маалыматтар менен иштөө

Докер жөнүндө бир катар материалдарды которуунун бүгүнкү бөлүгүндө биз маалыматтар менен иштөө жөнүндө сүйлөшөбүз. Атап айтканда, Docker томдору жөнүндө. Бул материалдарда биз дайыма Docker программалоо механизмдерин жегенге жарамдуу ар кандай окшоштуктар менен салыштырып турдук. Бул жерде биз бул салттан тайбайбыз. Докердеги маалыматтар жыпар жыттуу болсун. Дүйнөдө көптөгөн татымалдар бар жана Докерде маалыматтар менен иштөөнүн көптөгөн жолдору бар.

1-бөлүк: Негиздер
2-бөлүк: терминдер жана түшүнүктөр
3-бөлүк: Докер файлдары
4-бөлүк: Сүрөттөрдүн өлчөмүн азайтуу жана аларды чогултууну тездетүү
5-бөлүк: буйруктар
6-бөлүк: маалыматтар менен иштөө

Докерди үйрөнүү, 6-бөлүк: Маалыматтар менен иштөө

Бул материал Docker кыймылдаткычынын 18.09.1 ​​версиясын жана API версиясын колдонуу менен даярдалганын эске алыңыз 1.39.

Докердеги маалыматтар убактылуу же биротоло сакталышы мүмкүн. Убактылуу маалыматтардан баштайлы.

Убактылуу маалыматтарды сактоо

Docker контейнерлериндеги убактылуу маалыматтарды башкаруунун эки жолу бар.

Демейки боюнча, контейнерде иштеген колдонмо тарабынан түзүлгөн файлдар жазылуучу контейнер катмарында сакталат. Бул механизм иштеши үчүн атайын эч нерсе конфигурациялоонун кереги жок. Бул арзан жана шайыр болуп чыгат. Колдонмо жөн гана маалыматтарды сактап, өз ишин улантуу керек. Бирок, контейнер жок болгондон кийин, ушундай жөнөкөй жол менен сакталган маалыматтар да жок болот.

Докерде убактылуу файлдарды сактоо - бул стандарттык убактылуу маалыматтарды сактоо механизмин колдонуу менен жетишүүгө мүмкүн болгонго салыштырмалуу аткаруунун жогорку деңгээли талап кылынган учурларда ылайыктуу дагы бир чечим. Эгер маалыматыңыздын контейнер бар убакыттан узунураак сакталышынын кереги жок болсо, сиз tmpfs контейнерине туташа аласыз - хосттун оперативдик эс тутумун колдонгон убактылуу маалымат дүкөнү. Бул маалыматтарды жазуу жана окуу операцияларынын аткарылышын тездетет.

Көбүнчө контейнер жок болгондон кийин да маалыматтар сакталышы керек болот. Бул үчүн бизге туруктуу маалыматтарды сактоо механизмдери керек.

Туруктуу маалыматтарды сактоо

Берилиштердин иштөө мөөнөтүн контейнердин иштөө мөөнөтүнөн узун кылуунун эки жолу бар. Бир жолу - байлап орнотуу технологиясын колдонуу. Бул ыкма менен, мисалы, чыныгы жашоо папкасын контейнерге орното аласыз. Докерден тышкаркы процесстер да ушундай папкада сакталган маалыматтар менен иштей алат. Мына ушундай кара tmpfs монтаждоо жана монтаждоо технологиясы.

Докерди үйрөнүү, 6-бөлүк: Маалыматтар менен иштөө
Tmpfs монтаждоо жана монтаждоо

Bind mount технологиясын колдонуунун кемчиликтери, аны колдонуу маалыматтын камдык көчүрмөсүн, маалыматтарды миграциясын, бир нече контейнерлер арасында маалымат алмашууну татаалдантат. Туруктуу маалыматтарды сактоо үчүн Docker көлөмүн колдонуу алда канча жакшы.

Томдор Докер

Көлөм - бул хост машинасында контейнерлердин сыртында жайгашкан файл системасы. Томдор Docker тарабынан түзүлөт жана башкарылат. Бул жерде Docker томдорунун негизги касиеттери:

  • Алар маалыматты туруктуу сактоо каражаты болуп саналат.
  • Алар көз карандысыз жана контейнерлерден бөлүнгөн.
  • Алар ар кандай контейнерлер ортосунда бөлүштүрүлүшү мүмкүн.
  • Алар маалыматтарды натыйжалуу окууну жана жазууну уюштурууга мүмкүндүк берет.
  • Көлөмдөрү алыскы булут провайдеринин ресурстарына жайгаштырылышы мүмкүн.
  • Алар шифрленген болот.
  • Аларга ысымдар берилиши мүмкүн.
  • Контейнер көлөмдү маалыматтар менен алдын ала толтурууну уюштура алат.
  • Алар сыноо үчүн ыңгайлуу болуп саналат.

Көрүнүп тургандай, Docker томдору укмуштуудай касиеттерге ээ. Келгиле, аларды кантип түзүү жөнүндө сүйлөшөлү.

Томдорду түзүү

Көлөмдөрдү Docker же API сурамдары аркылуу түзсө болот.

Бул жерде контейнерди баштаганда көлөмдү түзүүгө мүмкүндүк берген Докер файлындагы нускама.

VOLUME /my_volume

Окшош нускаманы колдонууда, Docker контейнерди жараткандан кийин, көрсөтүлгөн жерде мурунтан эле бар болгон маалыматтарды камтыган көлөмдү түзөт. Эгер сиз Dockerfile аркылуу том түзсөңүз, бул сизди томдун монтаждоо чекитинин көрсөтүү зарылдыгынан бошотпой турганын эске алыңыз.

JSON форматын колдонуп Dockerfileде томдорду да түзө аласыз.

Мындан тышкары, көлөмү контейнер иштеп жатканда буйрук сабынын куралдарын колдонуу менен түзүлүшү мүмкүн.

Буйрук сабынан томдор менен иштөө

▍Көлөмдү түзүү

Сиз төмөнкү буйрук менен өз алдынча көлөмүн түзө аласыз:

docker volume create —-name my_volume

▍Көлөмдөр жөнүндө маалымат алыңыз

Docker томдорунун тизмесин көрүү үчүн, төмөнкү буйрукту колдонуңуз:

docker volume ls

Сиз бул сыяктуу белгилүү бир томду изилдей аласыз:

docker volume inspect my_volume

▍Көлөмдү жок кылуу

Сиз мындай томду өчүрө аласыз:

docker volume rm my_volume

Контейнерлер тарабынан колдонулбаган бардык томдорду алып салуу үчүн, сиз төмөнкү буйрукка кайрыла аласыз:

docker volume prune

Томдорду жок кылуудан мурун, Docker бул операцияны ырастоону суранат.

Эгерде том контейнер менен байланыштырылса, тиешелүү контейнер жок кылынмайынча, ал көлөм жок кылынбайт. Ошол эле учурда, контейнер алынып салынса да, Docker муну дайыма эле түшүнө бербейт. Бул болуп калса, сиз төмөнкү буйрукту колдоно аласыз:

docker system prune

Ал Docker ресурстарын тазалоо үчүн иштелип чыккан. Бул буйрукту аткаргандан кийин, статусу мурда туура эмес болгон томдорду жок кыла аласыз.

--mount жана --volume желектери

Томдор менен иштөө үчүн, сиз буйрукту чакырганда docker, көбүнчө желектерди колдонуу керек болот. Мисалы, контейнерди түзүү учурунда көлөмдү түзүү үчүн сиз бул конструкцияны колдонсоңуз болот:

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

Байыркы убакта (2017-жылга чейин) желек популярдуу болгон --volume. Башында, бул желек (ал ошондой эле кыскартылган түрдө колдонулушу мүмкүн, андан кийин окшойт -v) өз алдынча контейнерлер үчүн колдонулган, жана туу --mount - Docker Swarm чөйрөсүндө. Бирок, Докер 17.06 боюнча, желек --mount ар кандай сценарийде колдонсо болот.

Бул желек колдонууда белгилей кетүү керек --mount буйрукта көрсөтүлүшү керек болгон кошумча маалыматтардын көлөмү көбөйөт, бирок, бир нече себептерден улам, бул өзгөчө желекти колдонуу жакшы, бирок --volume. Желек --mount кызматтар менен иштөөгө же көлөмдөгү драйверлердин параметрлерин көрсөтүүгө мүмкүндүк берген жалгыз механизм. Ошондой эле, бул желек менен иштөө оңой.

Докердин берилиштерин манипуляциялоо буйруктарынын учурдагы мисалдарында желектин колдонулушунун көптөгөн мисалдарын көрө аласыз -v. Бул буйруктарды өзүңүзгө ылайыкташтырууга аракет кылып жатканда, желектер экенин эстен чыгарбаңыз --mount и --volume ар кандай параметр форматтарын колдонуу. Башкача айтканда, сиз жөн эле алмаштыра албайсыз -v боюнча --mount жана жумушчу топту алыңыз.

ортосундагы негизги айырма --mount и --volume желек колдонууда болуп саналат --volume бардык параметрлер бир талаада чогуу чогултулган, жана колдонууда --mount параметрлери бөлүнөт.

Менен иштегенде --mount параметрлер ачкыч-маани жуптары катары көрсөтүлөт, тактап айтканда, окшош key=value. Бул жуптар үтүр менен бөлүнгөн. Бул жерде көбүнчө колдонулган параметрлер бар --mount:

  • type - монтаж түрү. Тиешелүү ачкычтын мааниси болушу мүмкүн байланыштыруу, көлөм же tmpfs. Бул жерде томдор жөнүндө сөз болуп жатат, башкача айтканда, биз баалуулукка кызыкдарбыз volume.
  • source - орнотуу булагы. Аты аталган томдор үчүн бул томдун аталышы. Аты жок томдор үчүн бул ачкыч көрсөтүлгөн эмес. Аны кыскартууга болот src.
  • destination - файл же папка контейнерге орнотулган жол. Бул ачкычты кыскартса болот dst же target.
  • readonly - арналган көлөмдү орнотот окуу үчүн гана. Бул ачкычты колдонуу милдеттүү эмес жана ага эч кандай маани берилбейт.

Бул жерде колдонуунун бир мисалы болуп саналат --mount көптөгөн параметрлери менен:

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

натыйжалары

Бул жерде сиз Docker томдору менен иштөөдө колдоно турган кээ бир пайдалуу буйруктар:

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

Бул жерде көбүнчө колдонулган варианттардын тизмеси --mount, форманын буйругунда колдонулат docker run --mount my_options my_image:

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

Эми биз бул Docker сериясын аяктагандан кийин, Docker үйрөнүүчүлөрү мындан ары кайда бара ала тургандыгы жөнүндө бир нече сөз айтууга убакыт келди. бул жерде Docker жөнүндө сонун макала. бул жерде Докер жөнүндө китеп (бул китепти сатып алууда анын эң акыркы басылышын алууга аракет кылыңыз). бул жерде практика технологияны үйрөнүүнүн эң жакшы жолу деп ойлогондор үчүн дагы бир китеп.

Урматтуу окурмандар! Жаңы баштагандарга кандай Docker материалдарын үйрөнүүнү сунуштайт элеңиз?

Докерди үйрөнүү, 6-бөлүк: Маалыматтар менен иштөө

Source: www.habr.com

Комментарий кошуу