{"id":11190,"date":"2026-06-21T23:15:00","date_gmt":"2026-06-21T23:15:00","guid":{"rendered":"https:\/\/bitep.net\/blog\/2026\/06\/21\/ubuntu-24-04-d%c9%99-docker-compose-il%c9%99-mikroservisl%c9%99r-qurmaq-etrafli-b%c9%99l%c9%99dci\/"},"modified":"2026-06-21T23:11:10","modified_gmt":"2026-06-21T23:11:10","slug":"ubuntu-24-04-d%c9%99-docker-compose-il%c9%99-mikroservisl%c9%99r-qurmaq-etrafli-b%c9%99l%c9%99dci","status":"publish","type":"post","link":"https:\/\/bitep.net\/blog\/2026\/06\/21\/ubuntu-24-04-d%c9%99-docker-compose-il%c9%99-mikroservisl%c9%99r-qurmaq-etrafli-b%c9%99l%c9%99dci\/","title":{"rendered":"Ubuntu 24.04-d\u0259 Docker Compose il\u0259 Mikroservisl\u0259r Qurmaq: \u018ftrafl\u0131 B\u0259l\u0259d\u00e7i"},"content":{"rendered":"<h2>Giri\u015f<\/h2>\n<p><strong>Docker Compose v\u0259 Mikroservisl\u0259r Niy\u0259 Vacibdir?<\/strong><br \/>\nMikroservis arxitekturas\u0131, t\u0259tbiql\u0259ri ki\u00e7ik, m\u00fcst\u0259qil xidm\u0259tl\u0259r\u0259 b\u00f6l\u0259r\u0259k skalabellik v\u0259 \u00e7eviklik t\u0259min edir. Docker Compose is\u0259 bu xidm\u0259tl\u0259ri bir yerd\u0259 idar\u0259 etm\u0259yin \u0259n sad\u0259 yoludur. Bu b\u0259l\u0259d\u00e7id\u0259 <strong>Ubuntu 24.04-d\u0259 Docker Compose il\u0259 mikroservisl\u0259r nec\u0259 qurulur<\/strong>, t\u0259hl\u00fck\u0259sizlik v\u0259 monitorinq \u00fc\u00e7\u00fcn \u0259n yax\u015f\u0131 t\u0259cr\u00fcb\u0259l\u0259rd\u0259n b\u0259hs ed\u0259c\u0259yik.<\/p>\n<p><strong>Mikroservisl\u0259rin \u00dcst\u00fcnl\u00fckl\u0259ri<\/strong><br \/>\n&#8211; <strong>Skalabellik<\/strong>: H\u0259r bir xidm\u0259t m\u00fcst\u0259qil olaraq miqyaslana bil\u0259r.<br \/>\n&#8211; <strong>\u00c7eviklik<\/strong>: Xidm\u0259tl\u0259r bir-birind\u0259n as\u0131l\u0131 olmayaraq inki\u015faf etdiril\u0259 bil\u0259r.<br \/>\n&#8211; <strong>T\u0259hl\u00fck\u0259sizlik<\/strong>: H\u0259r bir xidm\u0259t \u00f6z t\u0259hl\u00fck\u0259sizlik siyas\u0259tin\u0259 malikdir.<br \/>\n&#8211; <strong>Asan \u0130dar\u0259etm\u0259<\/strong>: Docker Compose il\u0259 b\u00fct\u00fcn xidm\u0259tl\u0259r bir faylda konfiqurasiya edilir.<\/p>\n<hr>\n<h2>\u0130lkin \u015e\u0259rtl\u0259r<\/h2>\n<ol>\n<li>Ubuntu 24.04 VPS (v\u0259 ya fiziki server).<\/li>\n<li>Root v\u0259 ya sudo giri\u015f imkan\u0131.<\/li>\n<li>\u0130nternet ba\u011flant\u0131s\u0131.<\/li>\n<li>\u018fsas Linux komandalar\u0131 il\u0259 tan\u0131\u015fl\u0131q.<\/li>\n<\/ol>\n<hr>\n<h2>Add\u0131m-Add\u0131m Qura\u015fd\u0131rma<\/h2>\n<h3>1. Docker v\u0259 Docker Compose Qura\u015fd\u0131r\u0131lmas\u0131<\/h3>\n<pre><code class=\"language-bash\">sudo apt update && sudo apt install -y docker.io docker-compose\n<\/code><\/pre>\n<h3>2. Docker Xidm\u0259tini Aktivl\u0259\u015fdirm\u0259k<\/h3>\n<pre><code class=\"language-bash\">sudo systemctl enable --now docker\n<\/code><\/pre>\n<h3>3. <code>docker-compose.yml<\/code> Fayl\u0131n\u0131n Yarad\u0131lmas\u0131<\/h3>\n<pre><code class=\"language-yaml\">version: '3.8'\nservice:\n  web:\n    image: nginx:alpine\n    ports:\n      - \"80:80\"\n    volumes:\n      - .\/html:\/usr\/share\/nginx\/html\n  db:\n    image: postgres:15\n    environment:\n      POSTGRES_PASSWORD: example\n    volumes:\n      - postgres_data:\/var\/lib\/postgresql\/data\nvolumes:\n  postgres_data:\n<\/code><\/pre>\n<h3>4. Servisl\u0259ri \u0130\u015f\u0259 Salmaq<\/h3>\n<pre><code class=\"language-bash\">docker-compose up -d\n<\/code><\/pre>\n<h3>5. Statusu Yoxlamaq<\/h3>\n<pre><code class=\"language-bash\">docker-compose ps\n<\/code><\/pre>\n<hr>\n<h2>T\u0259hl\u00fck\u0259sizlik Qeydl\u0259ri<\/h2>\n<h3>1. Firewall Qaydalar\u0131<\/h3>\n<pre><code class=\"language-bash\">sudo ufw allow 80\/tcp\nsudo ufw allow 443\/tcp\n<\/code><\/pre>\n<h3>2. Network Isolation<\/h3>\n<pre><code class=\"language-yaml\">networks:\n  internal:\n    internal: true\n<\/code><\/pre>\n<h3>3. Secret Management<\/h3>\n<pre><code class=\"language-yaml\">secrets:\n  db_password:\n    file: .\/secrets\/db_password.txt\n<\/code><\/pre>\n<h3>4. \u0130stifad\u0259\u00e7i \u0130caz\u0259l\u0259ri<\/h3>\n<pre><code class=\"language-bash\">sudo chmod 600 .\/secrets\/db_password.txt\n<\/code><\/pre>\n<hr>\n<h2>Monitorinq v\u0259 Loglama<\/h2>\n<h3>1. Prometheus v\u0259 Grafana Qura\u015fd\u0131r\u0131lmas\u0131<\/h3>\n<pre><code class=\"language-yaml\">prometheus:\n  image: prom\/prometheus\n  ports:\n    - \"9090:9090\"\n  volumes:\n    - .\/prometheus.yml:\/etc\/prometheus\/prometheus.yml\ngrafana:\n  image: grafana\/grafana\n  ports:\n    - \"3000:3000\"\n<\/code><\/pre>\n<h3>2. ELK Stack (Optional)<\/h3>\n<pre><code class=\"language-yaml\">elasticsearch:\n  image: docker.elastic.co\/elasticsearch\/elasticsearch:8.12.0\n  environment:\n    - discovery.type=single-node\nlogstash:\n  image: docker.elastic.co\/logstash\/logstash:8.12.0\nkibana:\n  image: docker.elastic.co\/kibana\/kibana:8.12.0\n  ports:\n    - \"5601:5601\"\n<\/code><\/pre>\n<hr>\n<h2>N\u0259tic\u0259<\/h2>\n<p>Docker Compose il\u0259 mikroservisl\u0259r qurmaq, Ubuntu 24.04-d\u0259 olduqca sad\u0259 v\u0259 effektivdir. Bu b\u0259l\u0259d\u00e7i il\u0259 <strong>NGINX, PostgreSQL, Prometheus, Grafana<\/strong> kimi xidm\u0259tl\u0259ri bir ne\u00e7\u0259 d\u0259qiq\u0259d\u0259 i\u015f\u0259 sala bil\u0259rsiniz. G\u0259l\u0259c\u0259kd\u0259 <strong>Kubernetes<\/strong> v\u0259 <strong>CI\/CD<\/strong> inteqrasiyas\u0131 il\u0259 bu infrastrukturu daha da inki\u015faf etdirm\u0259k m\u00fcmk\u00fcnd\u00fcr.<\/p>\n<hr>\n<h3>M\u0259nb\u0259l\u0259r:<\/h3>\n<ul>\n<li><a href=\"https:\/\/docs.docker.com\/\" rel=\"nofollow\">Docker R\u0259smi S\u0259n\u0259dl\u0259ri<\/a><\/li>\n<li><a href=\"https:\/\/docs.docker.com\/compose\/\" rel=\"nofollow\">Docker Compose R\u0259smi S\u0259n\u0259dl\u0259ri<\/a><\/li>\n<li><a href=\"https:\/\/ubuntu.com\/server\/docs\" rel=\"nofollow\">Ubuntu 24.04 Server B\u0259l\u0259d\u00e7isi<\/a><\/li>\n<li><a href=\"https:\/\/prometheus.io\/docs\/introduction\/overview\/\" rel=\"nofollow\">Prometheus R\u0259smi S\u0259n\u0259dl\u0259ri<\/a><\/li>\n<li><a href=\"https:\/\/grafana.com\/docs\/\" rel=\"nofollow\">Grafana R\u0259smi S\u0259n\u0259dl\u0259ri<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Giri\u015f Docker Compose v\u0259 Mikroservisl\u0259r Niy\u0259 Vacibdir? Mikroservis arxitekturas\u0131, t\u0259tbiql\u0259ri ki\u00e7ik, m\u00fcst\u0259qil xidm\u0259tl\u0259r\u0259 b\u00f6l\u0259r\u0259k skalabellik v\u0259 \u00e7eviklik t\u0259min edir. Docker Compose is\u0259 bu xidm\u0259tl\u0259ri bir yerd\u0259 idar\u0259 etm\u0259yin \u0259n sad\u0259 yoludur. Bu b\u0259l\u0259d\u00e7id\u0259 Ubuntu 24.04-d\u0259 Docker Compose il\u0259 mikroservisl\u0259r nec\u0259 qurulur, t\u0259hl\u00fck\u0259sizlik v\u0259 monitorinq \u00fc\u00e7\u00fcn \u0259n yax\u015f\u0131 t\u0259cr\u00fcb\u0259l\u0259rd\u0259n b\u0259hs ed\u0259c\u0259yik. Mikroservisl\u0259rin \u00dcst\u00fcnl\u00fckl\u0259ri &#8211; Skalabellik: H\u0259r [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":11189,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[17,41],"tags":[],"class_list":["post-11190","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hosting","category-tutoriallar"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/bitep.net\/blog\/wp-content\/uploads\/2026\/06\/docker_compose_ubuntu_2026-1.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bitep.net\/blog\/wp-json\/wp\/v2\/posts\/11190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitep.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitep.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitep.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bitep.net\/blog\/wp-json\/wp\/v2\/comments?post=11190"}],"version-history":[{"count":3,"href":"https:\/\/bitep.net\/blog\/wp-json\/wp\/v2\/posts\/11190\/revisions"}],"predecessor-version":[{"id":11196,"href":"https:\/\/bitep.net\/blog\/wp-json\/wp\/v2\/posts\/11190\/revisions\/11196"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bitep.net\/blog\/wp-json\/wp\/v2\/media\/11189"}],"wp:attachment":[{"href":"https:\/\/bitep.net\/blog\/wp-json\/wp\/v2\/media?parent=11190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitep.net\/blog\/wp-json\/wp\/v2\/categories?post=11190"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitep.net\/blog\/wp-json\/wp\/v2\/tags?post=11190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}