{"id":157,"date":"2026-05-15T18:18:11","date_gmt":"2026-05-15T16:18:11","guid":{"rendered":"https:\/\/gorankostic.com\/blog\/?p=157"},"modified":"2026-05-15T18:18:12","modified_gmt":"2026-05-15T16:18:12","slug":"docker-production-stability","status":"publish","type":"post","link":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/docker-production-stability\/","title":{"rendered":"Docker Production Stability"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Docker Production Stability<\/h1>\n\n\n\n<p><strong>Excerpt:<\/strong> <br>Docker production stability zna\u010di da container sistemi nisu samo uspe\u0161no pokrenuti, ve\u0107 imaju jasnu strategiju za restart, update, backup, logove, monitoring, storage, mre\u017ee i oporavak posle problema.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Docker Production Stability<\/h2>\n\n\n\n<p>Docker production stability po\u010dinje od razlike izme\u0111u sistema koji \u201cradi trenutno\u201d i sistema koji mo\u017ee pouzdano da radi du\u017ei period. Container mo\u017ee biti pokrenut i aplikacija mo\u017ee biti dostupna, ali to samo po sebi ne zna\u010di da je infrastruktura stabilna za produkciju.<\/p>\n\n\n\n<p>Prvi va\u017ean element je restart politika. Servisi koji moraju stalno da rade treba da imaju definisano pona\u0161anje ako container pukne ili ako se server restartuje. To ne re\u0161ava uzrok problema, ali spre\u010dava da servis ostane uga\u0161en zbog privremenog pada.<\/p>\n\n\n\n<p>Drugi va\u017ean sloj su logovi. Produkcioni Docker sistem mora imati na\u010din da se brzo vidi \u0161ta se de\u0161ava u aplikaciji, bazi, reverse proxy-ju ili worker procesu. Ako logovi nisu pregledni, svaki problem se pretvara u naga\u0111anje.<\/p>\n\n\n\n<p>Persistent storage mora biti jasno definisan. Baze podataka, upload folderi, konfiguracije i trajni fajlovi ne smeju zavisiti od samog container-a. Bez dobre storage logike, update ili rebuild mogu napraviti ozbiljan gubitak podataka.<\/p>\n\n\n\n<p>Backup nije dodatna opcija, ve\u0107 osnovni deo stabilnosti. Potrebno je znati \u0161ta se backup-uje, gde se nalazi, koliko \u010desto se \u010duva i kako se vra\u0107a nazad. Backup koji nije testiran kroz restore proces nije potpuno pouzdan backup.<\/p>\n\n\n\n<p>Update strategija mora biti kontrolisana. Povla\u010denje nove verzije image-a i restart servisa mo\u017ee izgledati jednostavno, ali u produkciji treba znati \u0161ta se menja, da li postoji breaking change i kako se vratiti na prethodno stanje ako nova verzija ne radi.<\/p>\n\n\n\n<p>Mre\u017ena izolacija doprinosi stabilnosti i bezbednosti. Servisi koji ne moraju biti javno dostupni ne treba da imaju otvorene portove ka internetu. Baze, Redis, interni API-ji i worker-i treba da komuniciraju kroz interne Docker mre\u017ee.<\/p>\n\n\n\n<p>Reverse proxy mora biti stabilno pode\u0161en. SSL, domeni, header-i, WebSocket rute, webhook endpoint-i i interni portovi moraju biti jasno povezani. Lo\u0161e pode\u0161en proxy mo\u017ee izazvati probleme koji izgledaju kao gre\u0161ka u aplikaciji, iako je problem u rutiranju.<\/p>\n\n\n\n<p>Monitoring i osnovni health check-ovi poma\u017eu da se problemi primete pre korisnika. Nije uvek potreban kompleksan monitoring sistem, ali minimum treba da postoji: proveravanje dostupnosti servisa, zauze\u0107a diska, memorije, logova i restart loop-ova.<\/p>\n\n\n\n<p>Dobra Docker production stability strategija kombinuje strukturu, disciplinu i predvidljive procedure. Kada su restart, logovi, storage, backup, update, mre\u017ee, proxy i monitoring dobro postavljeni, Docker okru\u017eenje prestaje da bude samo zgodan deployment alat i postaje stabilna produkciona infrastruktura.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Docker production stability zna\u010di da container sistemi nisu samo uspe\u0161no pokrenuti, ve\u0107 imaju jasnu strategiju za restart, update, backup, logove, monitoring, storage, mre\u017ee i [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,6],"tags":[],"class_list":["post-157","post","type-post","status-publish","format-standard","hentry","category-docker-environments","category-infrastructure"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.5 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Docker Production Stability - Goran Kostic Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/docker-production-stability\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker Production Stability\" \/>\n<meta property=\"og:description\" content=\"Docker production stability zna\u010di da container sistemi nisu samo uspe\u0161no pokrenuti, ve\u0107 imaju jasnu strategiju za restart, update, backup, logove, monitoring, storage, mre\u017ee i [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/docker-production-stability\/\" \/>\n<meta property=\"og:site_name\" content=\"Goran Kostic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-15T16:18:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-15T16:18:12+00:00\" \/>\n<meta name=\"author\" content=\"WebixDesign\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"WebixDesign\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/docker-production-stability\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/docker-production-stability\\\/\"},\"author\":{\"name\":\"WebixDesign\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0f800bfa90359ff9d2204020d58099c8\"},\"headline\":\"Docker Production Stability\",\"datePublished\":\"2026-05-15T16:18:11+00:00\",\"dateModified\":\"2026-05-15T16:18:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/docker-production-stability\\\/\"},\"wordCount\":438,\"commentCount\":0,\"articleSection\":[\"Docker Environments\",\"INFRASTRUCTURE\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/docker-production-stability\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/docker-production-stability\\\/\",\"url\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/docker-production-stability\\\/\",\"name\":\"Docker Production Stability - Goran Kostic Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-05-15T16:18:11+00:00\",\"dateModified\":\"2026-05-15T16:18:12+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0f800bfa90359ff9d2204020d58099c8\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/docker-production-stability\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/docker-production-stability\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/docker-production-stability\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker Production Stability\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/\",\"name\":\"Goran Kostic Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0f800bfa90359ff9d2204020d58099c8\",\"name\":\"WebixDesign\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g\",\"caption\":\"WebixDesign\"},\"sameAs\":[\"https:\\\/\\\/gorankostic.com\\\/blog\"],\"url\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/author\\\/webixdesign\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Docker Production Stability - Goran Kostic Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/docker-production-stability\/","og_locale":"en_US","og_type":"article","og_title":"Docker Production Stability","og_description":"Docker production stability zna\u010di da container sistemi nisu samo uspe\u0161no pokrenuti, ve\u0107 imaju jasnu strategiju za restart, update, backup, logove, monitoring, storage, mre\u017ee i [&hellip;]","og_url":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/docker-production-stability\/","og_site_name":"Goran Kostic Blog","article_published_time":"2026-05-15T16:18:11+00:00","article_modified_time":"2026-05-15T16:18:12+00:00","author":"WebixDesign","twitter_card":"summary_large_image","twitter_misc":{"Written by":"WebixDesign","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/docker-production-stability\/#article","isPartOf":{"@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/docker-production-stability\/"},"author":{"name":"WebixDesign","@id":"https:\/\/gorankostic.com\/blog\/#\/schema\/person\/0f800bfa90359ff9d2204020d58099c8"},"headline":"Docker Production Stability","datePublished":"2026-05-15T16:18:11+00:00","dateModified":"2026-05-15T16:18:12+00:00","mainEntityOfPage":{"@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/docker-production-stability\/"},"wordCount":438,"commentCount":0,"articleSection":["Docker Environments","INFRASTRUCTURE"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gorankostic.com\/blog\/2026\/05\/15\/docker-production-stability\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/docker-production-stability\/","url":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/docker-production-stability\/","name":"Docker Production Stability - Goran Kostic Blog","isPartOf":{"@id":"https:\/\/gorankostic.com\/blog\/#website"},"datePublished":"2026-05-15T16:18:11+00:00","dateModified":"2026-05-15T16:18:12+00:00","author":{"@id":"https:\/\/gorankostic.com\/blog\/#\/schema\/person\/0f800bfa90359ff9d2204020d58099c8"},"breadcrumb":{"@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/docker-production-stability\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gorankostic.com\/blog\/2026\/05\/15\/docker-production-stability\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/docker-production-stability\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gorankostic.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Docker Production Stability"}]},{"@type":"WebSite","@id":"https:\/\/gorankostic.com\/blog\/#website","url":"https:\/\/gorankostic.com\/blog\/","name":"Goran Kostic Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gorankostic.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/gorankostic.com\/blog\/#\/schema\/person\/0f800bfa90359ff9d2204020d58099c8","name":"WebixDesign","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g","caption":"WebixDesign"},"sameAs":["https:\/\/gorankostic.com\/blog"],"url":"https:\/\/gorankostic.com\/blog\/author\/webixdesign\/"}]}},"_links":{"self":[{"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/posts\/157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/comments?post=157"}],"version-history":[{"count":1,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/posts\/157\/revisions"}],"predecessor-version":[{"id":158,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/posts\/157\/revisions\/158"}],"wp:attachment":[{"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/media?parent=157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/categories?post=157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/tags?post=157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}