Kung Bakit Mahalaga ang Automated Docker Cleanup sa Disk Space Management
Ang mga lalagyan ng docker ay nagbibigay ng magaan at di - nagbabagong kapaligiran para sa pag - unlad, pagsubok, at paglalagay ng mga lalagyan na madaling mag - ikid at mag - alis ng mga lalagyan sa pamamagitan ng mga lalagyan.
Ang isang developer workstation ay maaaring magtipon ng gigabytes ng uniated Docker Pictures sa loob ng mga linggo. Sa mga kapaligirang produksiyon, kung saan ang mga lalagyan ay madalas na inaapruba o pinapalitan, ang problema ay mabilis.Ang manufacturing na paglilinis ay error-prone at madalas na napabayaan. Sa pagpapatupad ng isang de-kombing, naka-iskedyul na estratehiyang pang-tabas, inaalis mo ang ekwatasyon at libreng mapagkukunan para sa kung anong mga bagay ang pinaka-bagay: ang pagpapatakbo ng iyong mga aplikasyon.
Pag - unawa sa mga Dockerileriler na Naglilinis ng mga Utilidad
Docker ang nagbibigay ng utos para sa pag - aalis ng di - ginagamit na impormasyon. Ang pinakamalakas ay ang , na maaaring asintahin ang mga sisidlan, imahen, tomo, at network.
- [[ – Tinanggal ang lahat ng mga nahintong lalagyan, lahat ng mga nakabiting imahe, at hindi nagamit na mga network.
- [[ – Dagdagan ang pag-aalis ng lahat ng mga hindi ginagamit na imahen (hindi lamang ang mga nakabitin), kabilang ang mga imaheng hindi tinukoy ng anumang lalagyan.
- [[ – Gayundin ang mga prunes na hindi ginagamit na mga tomo (sa pamamagitan ng default volume ay hindi inaalis).
- [[ – Pinagsama ang lahat ng mga watawat: pagtanggal ng puwersa nang walang kumpil, lahat ng mga hindi ginagamit na imahe, at mga tomo.Ito ang opsiyong nukleyar para sa paglilinis.
Para sa higit pang pagkontrol sa mga granular, nag-aalok si Docker ng mga hiwalay na utos: , , , at ].Tanggap ng bawat isa ang mga filter (e.g., ) upang limitahan ang deleksiyon sa mga mapagkukunang mas matanda sa isang partikular na panahon.
Hakbang-by-Temple Seup para sa Koron-Based Automation
Sa mga sistemang Linux, ang cron ay nananatiling pinakasimpleng kasangkapan sa pag - iiskedyul para sa paulit - ulit na mga gawain.
1. Verofy Docker Command Path
Ang mga trabaho sa pamamagitan ng computer ay tumatakbo nang may limitadong kapaligiran.
which docker
Karaniwan nang gamitin ang daang iyon sa iyong utos .
2. I-dit ang Iyong Korontab
Takbo:
crontab -e
Kung ito ang unang pagkakataon mo, ikaw ang mag-udyok na pumili ng editor. Magdagdag ng linya tulad ng sumusunod na tumatakbo araw-araw sa 2:00 AM:
0 2 * * * /usr/bin/docker system prune -af --volumes > /dev/null 2>&1
Ang ay nagreredirect ng stdout at stderr upang hindi punan ang iyong buson ng output.Iayos ang iskedyul kung kinakailangan (hal., para sa lingguhan).
3. Subukin ang Trabaho
Bago umasa sa cron, gawin ang utos nang manu - mano upang tiyakin na ito'y magiging mabisa gaya ng inaasahan:
sudo /usr/bin/docker system prune -af --volumes
Kung gumagamit ka ng isang non calroot Docker na instalasyon, baka kailanganin mong idagdag o patakbuhin ang cron na trabaho bilang tagagamit sa grupo .
Patiunang Automasyon na may mga Sistema ng Oras
Bagaman sapat na ang cron para sa marami, ang mga systemd timers ay nag-aalok ng mas mahusay na pagtotroso, paghawak ng dependency, at pagsasama sa iba pang mga init system. hetoimen kung paano lumikha ng timer para sa Docker cleaning.
1. Gumawa ng Service Unit
Iligtas ang mga sumusunod bilang :
[Unit]
Description=Docker system prune
Wants=docker.service
After=docker.service
[Service]
Type=oneshot
ExecStart=/usr/bin/docker system prune -af --volumes
User=root
StandardOutput=journal
2. Gumawa ng Isang "Trater Unit "
Magtipid bilang :
[Unit]
Description=Run Docker cleanup daily
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
3. Malugod at Magsimula sa Oras
sudo systemctl daemon-reload
sudo systemctl enable docker-cleanup.timer
sudo systemctl start docker-cleanup.timer
Ibalik sa systemd journal ang output ng mga troso, kaya mas madali nang linisin ang mga ito.
Pag - aayos sa mga Bahid sa Paglilinis Para sa Rentensyon
Ang agresibong pagpungos ay ligtas para sa karamihan ng mga kapaligirang pang-unlad, ngunit ang mga sistema ng produksiyon ay maaaring mangailangan ng mga patakarang pang-responsiyong pang-rehiyon[2][[[2]], o kaya lamang mag-alis ng mga mapagkukunang mas matanda sa 48 oras.
Paglubog ng Panahon
Upang punihin ang mga imahen at mga sisidlan na mas matanda sa 24 na oras:
docker system prune -af --filter "until=24h" --volumes
Ang pansala ay gumagana kapuwa sa mga imahen at mga lalagyan. Combine kasama [maramihan] ng maraming beses para sa mas masalimuot na mga alituntunin.
Ilabas ang Espesipikong Yaman
Docker wasivent ay may isang itinayo-in ignored list, ngunit maaari kang gumamit ng mga etiketa upang maiwasan ang pagtanggal. Label mahalagang mga sisidlan o imahe (e.g., ), pagkatapos ay gumamit ng isang negatibong label na filter (hindi pa suportado sa ). Ang isang workconclusion ay ang pagsasama [[FL] at mga sangguniang pang-ugali na nag-seksekseksekseksepto bago ang dele[[[T][T][T:[T][T][T][TC.[T][T][TC.[T][T][0:[T][T][T][T][T][T][T][T][T][T][TC.[[[[[[[[[[[T][[[T][T][T][T][T][[[[CCCCCCCC.[C.[[[[C.[C.[
Mabisang Pag - aayos sa Kalawakan at Paglilinis
Ang paggamit ng mga makina ay parang pagsubaybay lamang sa iyo. Maglagay ng mga babala upang matunton ang paggamit ng disk pagkatapos ng bawat paglilinis.
- Ang pagtakbo sa isang trabahong cron at pagtotroso ang mga resulta.
- Ginagamit ang kagamitang katulad ng docker-system-resource-influx upang magpadala ng mga metriko sa InfluxDB o Prometheus.
- Integrated [[[[[ o New Relic] upang ilarawan sa isipan ang imbakan ng Docker sa paglipas ng panahon.
Kung ang iyong paglilinis ay tumatakbo ngunit ang paggamit ng disk ay nananatiling mataas, siyasatin gamit ang upang makita kung saan ang espasyo ay ginagamit. ang mga karaniwang salarin ay kinabibilangan ng paggawa ng cache sa mga sistemang CI o malalaking volume na hindi inaalis dahil ang mga ito ay tinutukoy pa rin ng mga nahintong lalagyan.
Pinakamabuting mga Gawain Para sa Produksiyong Kapaligiran
1. Laging Gamitin ang Isang Pag - aayos
Magsimula sa lingguhang dry grenchrun gamit ang na walang bandila (upang makita kung ano ang aalisin).[Tugtugunin ang output bago makapagdulot ng deleksiyong automated.
2. Mga koordinado ng CI/CD Pipeline
Kung ang iyong sistema ng pagtatayo ay lumilikha ng maraming pansamantalang mga larawan, ang iskedyul na pagpungos pagkatapos ng mga paggawa o sa panahon ng mababang mga bintanang caltraffic. Iwasan ang pagpungos habang tumatakbo ang mga gusali upang maiwasan ang di - sinasadyang pag - aalis ng panggitnang mga suson na ginagamit pa rin.
3. Paghinto sa Mapanganib na Data
Ang mga Tomo na naglalaman ng mga database o user uploads ay dapat suportahan bago ang anumang agresibong pagtabas ng volume. Gamitin ang mga kasangkapang docker volume management tulad ng na may upang i-bigkis ang mount outer storage na wide void na with Euit ay maapektuhan ng pruit.
4. Tumakbo Nang Palihim Bilang Di - aktibong Tagapaggamit
Para sa seguridad, iwasan ang pagpapatakbo ng mga trabahong cron maliban na lamang kung kinakailangan. Idagdag ang inyong gumagamit sa grupo at patakbuhin ang trabaho nang walang . Gayunpaman, pansinin na ang sinumang gumagamit sa grupo ay mabisang may root access sa host; tasahin ang panganib sa inyong kapaligiran.
5. Gawaing Paglilinis ng Log
Ituon ang output sa log file sa halip na para sa auditioning:
0 2 * * * /usr/bin/docker system prune -af --volumes >> /var/log/docker-cleanup.log 2>&1
Regular na suriin ang logo para sa mga pagkakamali o di inaasahang pag-alis.
Karaniwang mga Patibong at Kung Paano Maiiwasan ang mga Ito
- Pagtatanggal ng mga running containers data: Ang watawat ay nag-aalis ng lahat ng hindi ginagamit na imahe, kabilang ang panggitnang mga patong na maaaring kailanganin para sa mga pagtatayo sa hinaharap. kung madalas kang magtayong muli, isaalang-alang ang paglalagay ng maikling filter o pagtakbo nang walang .
- Ang mga coolume na naglalaman ng mahalagang estado: Sa pamamagitan ng default, ay hindi nag-aalis ng mga volume maliban na lamang kung ang watawat ay ginagamit. Idagdag lamang ang watawat na iyon kung ikaw ay tiyak na walang volume na naghahawak ng walang lubag na datos.
- Ang nukleyo ng pag-uugnay ng lalagyan: ay nag-aalis ng mga hindi ginagamit na network. Kung ang isang custom network ay hindi na tinukoy ng anumang lalagyan, ito ay aalisin, maaaring masira ang lalagyan ng startup sa hinaharap.[kailangan ng sanggunian] I-alaala ito kung gagamit ka ng mga spesting network sa Swarm.
- Ang kapaligirang pang-Cron ay isyu[: Ang docker ay maaaring wala sa PATH kapag tumatakbo ang cron. Laging gamitin ang buong landas patungo sa binaryo.
Mga Alternatibong Kasangkapan at Pamamaraan
Bagaman ang katutubong mga utos ng Docker ay sumasaklaw sa karamihan ng mga pangangailangan, ang ilang ikatlong kagamitang pang - grebol ay nagbibigay ng makabagong mga katangian:
- [[[[[1][[ – Ang mga komat ay nag-i-update ng mga tumatakbong lalagyan at maaaring linisin ang mga lumang imahe pagkatapos ng mga update.
- Portainer[[ – Isang web UI para sa pangangasiwa ng Docker na kinabibilangan ng isang nakatakdang tampok na panlinis.
- ]docker construction funcle[[ – Pangkalahatang mga target na gumagawa ng cache, na maaaring napakalaki sa mga tubo ng CI/CD.
Para sa mga kapaligirang Kubernetes, isaalang-alang ang paggamit kubelet basur collection[ at mga kasangkapang katulad ng Kured o Descheduler] para sa node-level na paglilinis.
Pagsasaayos
Ang pag - e - aautomat ng mga lalagyan ay isang simple ngunit kritikal na gawain para mapanatili ang isang malusog at mahusay na tagabisita ng Docker. Kung pipiliin mo ang cron, may - sistemang mga timer, o ikatlong kasangkapang pang - epyant, ang susi ay ang regular na pagpungos sa isang patakaran na nagtitimbang sa mga naipong disk laban sa panganib na makuha ang impormasyon na kailangan mo. Paandarin nang katamtaman ang mga filter at troso, pagkatapos ay higpitan ang iyong iskedyul habang lumalaki ang iyong pagtitiwala.