Learning Docker, Māhele 6: Hana me ka ʻikepili

Ma ka ʻāpana o kēia lā o ka unuhi ʻana o nā ʻano mea e pili ana iā Docker, e kamaʻilio mākou e pili ana i ka hana ʻana me ka ʻikepili. ʻO ka mea kūikawā, e pili ana i ka Docker volumes. Ma kēia mau mea, hoʻohālikelike mau mākou i nā mīkini hoʻolālā Docker me nā ʻano like ʻole. ʻAʻole mākou e haʻalele i kēia kuʻuna ma ʻaneʻi. E lilo ka ʻikepili ma Docker i mea ʻala. Nui nā mea ʻala i ka honua, a he nui nā ala e hana ai ʻo Docker me ka ʻikepili.

Mahele 1: Nā Kumu
Māhele 2: nā huaʻōlelo a me nā manaʻo
Mahele 3: Dockerfiles
Mahele 4: Hoʻemi i ka nui o nā kiʻi a me ka wikiwiki i kā lākou hui
Mahele 5: nā kauoha
Mahele 6: hana me ka ʻikepili

Learning Docker, Māhele 6: Hana me ka ʻikepili

E ʻoluʻolu, ua hoʻomākaukau ʻia kēia mea me ka hoʻohana ʻana i ka Docker engine version 18.09.1 ​​​​a me API version 1.39.

Hiki ke mālama ʻia ka ʻikepili ma Docker no ka manawa lōʻihi a paʻa paha. E hoʻomaka kākou me ka ʻikepili pōkole.

Waihona ʻikepili manawa

ʻElua ala e hoʻokele ai i ka ʻikepili pōkole i nā pahu Docker.

ʻO ka mea paʻamau, mālama ʻia nā faila i hana ʻia e kahi noi e holo ana i loko o kahi pahu i loko o kahi waihona ipu hiki ke kākau ʻia. I mea e hana ai kēia mīkini, ʻaʻohe mea kūikawā e pono e hoʻonohonoho. He mea maʻalahi a hauʻoli. Pono ka palapala noi e mālama i ka ʻikepili a hoʻomau i kāna hana ponoʻī. Eia naʻe, ma hope o ka pau ʻana o ka pahu, e nalowale hoʻi nā ʻikepili i mālama ʻia ma ke ala maʻalahi.

ʻO ka waiho ʻana i ka faila manawa ma Docker kahi hopena ʻē aʻe i kūpono no nā hihia kahi e koi ʻia ai kahi kiʻekiʻe o ka hana e hoʻohālikelike ʻia i ka mea i hiki ke hoʻokō ʻia me ka hoʻohana ʻana i ka mīkini mālama ʻikepili maʻamau. Inā ʻaʻole pono ʻoe e mālama ʻia kāu ʻikepili ma mua o ka loaʻa ʻana o ka pahu, hiki iā ʻoe ke hoʻohui i ka ipu tmpfs - kahi hale kūʻai ʻike pōkole e hoʻohana ana i ka RAM o ka mea hoʻokipa. E wikiwiki ana kēia i ka hoʻokō ʻana i nā hana kākau ʻikepili a me ka heluhelu ʻana.

Pono pinepine e mālama i ka ʻikepili ma hope o ka pau ʻana o ka pahu. No ka hana ʻana i kēia, pono mākou i nā mīkini mālama ʻikepili hoʻomau.

Mālama ʻikepili mau

ʻElua ala e hoʻolōʻihi ai i ke ola ʻikepili ma mua o ke ola o ka pahu. ʻO kekahi ala ʻo ka hoʻohana ʻana i ka ʻenehana bind mount. Me kēia ala, hiki iā ʻoe ke kau, no ka laʻana, kahi waihona ola maoli i ka ipu. Hiki i nā kaʻina hana ma waho o Docker ke hana me ka ʻikepili i mālama ʻia i loko o ia waihona. Pēlā nana tmpfs mauna a hoʻopaʻa ʻenehana mauna.

Learning Docker, Māhele 6: Hana me ka ʻikepili
Ke kau nei i nā tmpfs a hoʻopaʻa i ka mauna

ʻO nā hemahema o ka hoʻohana ʻana i ka ʻenehana bind mount ʻo ia ka hoʻohana ʻana i ka hoʻopili ʻana i ka ʻikepili, ka neʻe ʻana o ka ʻikepili, ka kaʻana like ʻana o ka ʻikepili ma waena o nā pahu. ʻOi aku ka maikaʻi o ka hoʻohana ʻana i nā volume Docker no ka mālama ʻana i ka ʻikepili mau.

Volumes Docker

ʻO ka leo he ʻōnaehana faila aia ma ka mīkini hoʻokipa ma waho o nā ipu. Hoʻokumu ʻia a mālama ʻia nā Volumes e Docker. Eia nā waiwai nui o Docker volumes:

  • He mea ia e mālama mau ai i ka ʻike.
  • Kūʻokoʻa lākou a hoʻokaʻawale ʻia mai nā pahu.
  • Hiki ke kaʻana like ma waena o nā pahu like ʻole.
  • Hāʻawi lākou iā ʻoe e hoʻonohonoho pono i ka heluhelu a me ke kākau ʻana i ka ʻikepili.
  • Hiki ke kau ʻia nā leo ma nā kumuwaiwai o kahi mea hāʻawi kapuaʻi mamao.
  • Hiki iā lākou ke hoʻopili ʻia.
  • Hiki iā lākou ke hāʻawi i nā inoa.
  • Hiki i ka ipu ke hoʻonohonoho no ka hoʻonui mua ʻana o ka leo me ka ʻikepili.
  • He kūpono lākou no ka hoʻāʻo ʻana.

E like me kāu e ʻike ai, loaʻa nā waiwai nui o Docker. E kamaʻilio kākou e pili ana i ka hana ʻana iā lākou.

Ke hana nei i nā Volumes

Hiki ke hana ʻia nā volumes me ka hoʻohana ʻana i nā noi Docker a i ʻole API.

Eia kahi ʻōlelo aʻo i ka Dockerfile e hiki ai iā ʻoe ke hana i kahi leo i ka wā e hoʻomaka ai i kahi pahu.

VOLUME /my_volume

Ke hoʻohana nei i kahi ʻōlelo aʻo like, Docker, ma hope o ka hana ʻana i ka ipu, e hana i kahi leo i loaʻa ka ʻikepili i loaʻa i ka wahi i kuhikuhi ʻia. E hoʻomaopopo inā ʻoe e hana i kahi leo me ka hoʻohana ʻana i kahi Dockerfile, ʻaʻole ia e hoʻomaha iā ʻoe i ka pono e kuhikuhi i ka piko o ka leo.

Hiki iā ʻoe ke hana i nā volumes i kahi Dockerfile me ka hoʻohana ʻana i ka format JSON.

Eia kekahi, hiki ke hana ʻia nā volumes me ka hoʻohana ʻana i nā mea hana laina kauoha i ka wā e holo ana ka ipu.

Ke hana nei me nā leo mai ka laina kauoha

▍Ka leo hana

Hiki iā ʻoe ke hana i kahi leo kūʻokoʻa me kēia kauoha:

docker volume create —-name my_volume

▍ E ʻike i ka ʻike e pili ana i nā puke

No ka nānā ʻana i kahi papa inoa o Docker volumes, e hoʻohana i kēia kauoha:

docker volume ls

Hiki iā ʻoe ke ʻimi i kahi leo kikoʻī e like me kēia:

docker volume inspect my_volume

▍Ke holoi nei i kahi leo

Hiki iā ʻoe ke holoi i kahi leo e like me kēia:

docker volume rm my_volume

I mea e wehe ai i nā puke i hoʻohana ʻole ʻia e nā ipu, hiki iā ʻoe ke hoʻohana i kēia kauoha:

docker volume prune

Ma mua o ka holoi ʻana i nā puke, e noi ʻo Docker iā ʻoe e hōʻoia i kēia hana.

Inā pili ka leo i kahi pahu, ʻaʻole hiki ke holoi ʻia kēlā leo a hiki i ka holoi ʻia ʻana o ka pahu pili. I ka manawa like, ʻoiai inā wehe ʻia ka pahu, ʻaʻole maopopo ʻo Docker i kēia. Inā hiki kēia, hiki iā ʻoe ke hoʻohana i kēia kauoha:

docker system prune

Hoʻolālā ʻia e hoʻomaʻemaʻe i nā kumuwaiwai Docker. Ma hope o ka hoʻokō ʻana i kēia kauoha, hiki iā ʻoe ke hoʻopau i nā puke i hewa ʻole ke kūlana ma mua.

ʻO nā hae --mauna a me --volume

E hana me nā volumes, ke kāhea ʻoe i ke kauoha docker, pono ʻoe e hoʻohana pinepine i nā hae. No ka laʻana, e hana i ka leo i ka wā o ka hana ʻana i ka pahu, hiki iā ʻoe ke hoʻohana i kēia kūkulu:

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

I ka wā kahiko (a hiki i 2017), kaulana ka hae --volume. I ka wā mua, ʻo kēia hae (hiki ke hoʻohana ʻia i kahi ʻano pōkole, a laila like ia -v) ua hoʻohana ʻia no nā ipu kūʻokoʻa, a me ka hae --mount - ma kahi kaiapuni Docker Swarm. Eia naʻe, e like me Docker 17.06, ka hae --mount hiki ke hoʻohana i kēlā me kēia hiʻohiʻona.

Pono e hoʻomaopopo i ka wā e hoʻohana ai i ka hae --mount piʻi ka nui o nā ʻikepili hou e kuhikuhi ʻia i ke kauoha, akā, no nā kumu he nui, ʻoi aku ka maikaʻi o ka hoʻohana ʻana i kēia hae, ʻaʻole --volume. Hae --mount ʻo ia wale nō ka mīkini e hiki ai iā ʻoe ke hana me nā lawelawe a i ʻole e kuhikuhi i nā koho hoʻokele volume. Eia kekahi, maʻalahi kēia hae e hana pū me.

I nā hiʻohiʻona o nā kauoha hoʻopunipuni data Docker, hiki iā ʻoe ke ʻike i nā hiʻohiʻona he nui o ka hoʻohana ʻana i ka hae. -v. Ke ho'āʻo nei e hoʻololi i kēia mau kauoha iā ʻoe iho, e hoʻomanaʻo i nā hae --mount и --volume hoʻohana i nā ʻano hoʻohālikelike like ʻole. ʻO ia hoʻi, ʻaʻole hiki iā ʻoe ke pani wale -v maluna o --mount a loaʻa i kahi hui hana.

ʻO ka ʻokoʻa nui ma waena --mount и --volume ʻo ia ke hoʻohana ʻana i ka hae --volume ʻohi ʻia nā ʻāpana āpau i hoʻokahi kahua, a i ka wā e hoʻohana ai --mount hoʻokaʻawale ʻia nā ʻāpana.

Ke hana pū nei --mount Hōʻike ʻia nā ʻāpana ma ke ʻano he kī-waiwai pai, ʻo ia hoʻi, me he mea lā key=value. Hoʻokaʻawale ʻia kēia mau paʻa e nā koma. Eia nā koho maʻamau --mount:

  • type — ke ano mauna. Hiki ke waiwai no ke kī pili kau, nui ai ole ia, tmpfs. Ke kamaʻilio nei mākou e pili ana i nā volumes ma aneʻi, ʻo ia hoʻi, makemake mākou i ka waiwai volume.
  • source - kumu mauna. No nā puke i kapa ʻia, ʻo ia ka inoa o ka leo. No nā puke inoa ʻole, ʻaʻole i kuhikuhi ʻia kēia kī. Hiki ke hoopokoleia i src.
  • destination - ke ala i kau ʻia ai ka faila a i ʻole ka waihona i loko o ka ipu. Hiki ke hoʻopōkole ʻia kēia kī i dst ai ole ia, target.
  • readonly - kau i ka leo i manaʻo ʻia no ka heluhelu wale no. He koho ka hoʻohana ʻana i kēia kī, a ʻaʻohe waiwai i hāʻawi ʻia iā ia.

Eia kekahi laʻana o ka hoʻohana --mount me nā koho he nui:

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

Nā hopena

Eia kekahi mau kauoha pono hiki iā ʻoe ke hoʻohana i ka wā e hana pū ai me Docker volumes:

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

Eia ka papa inoa o nā koho maʻamau no --mount, pili i ke kauoha o ke ano docker run --mount my_options my_image:

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

I kēia manawa ua hoʻopau mākou i kēia pūʻulu Docker, ʻo ia ka manawa e ʻōlelo ai i kekahi mau huaʻōlelo e pili ana i kahi e hele ai nā haumāna Docker. ʻaneʻi ʻatikala maikaʻi loa e pili ana iā Docker. ʻaneʻi he puke e pili ana iā Docker (ke kūʻai ʻana i kēia puke, e hoʻāʻo e kiʻi i ka puke hou loa o ia puke). ʻaneʻi ʻO kekahi puke no ka poʻe e manaʻo nei ʻo ka hoʻomaʻamaʻa ke ala maikaʻi loa e aʻo ai i ka ʻenehana.

E nā mea heluhelu aloha! He aha nā mea Docker āu e paipai ai no ka poʻe hoʻomaka e aʻo?

Learning Docker, Māhele 6: Hana me ka ʻikepili

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka