# Docker

#### 1. Çift Yönlü Mimari Rolü

* Packer, Docker altyapısını bir "Oluşturucu" olarak kullanır. Temel bir imajdan (Base Image) başlayarak, tanımlanan provizyon adımlarını (Shell, Ansible vb.) uygular ve nihai bir Hedef İmaj üretir.
* Post-Processor: Üretilen Docker imajı (Artifact) üzerinde `docker-tag` , `docker-push` (Registry'ye yükleme) veya `docker-save` gibi operasyonlar bu aşamada yönetilir.

#### 2. Ortam Eşitliği ve Stratejik Uyumluluk

* Production için AWS AMI derlenirken, eş zamanlı olarak Development ortamı için aynı konfigürasyon setine sahip bir Docker imajı üretilebilir.
* Bu yaklaşım, altyapı kodunun (IaC) her iki ortamda da aynı davranışsal bütünlüğü sergilemesini garanti altına alır.

#### 3. Standartlaştırılmış İş Akışı

* Docker imajları, sadece `Dockerfile` komutlarıyla sınırlı kalmaz; Packer'ın sunduğu Ansible, Chef veya Shell provizyonerleri ile zenginleştirilebilir.
* Üretilen konteyner imajları, runtime'da değiştirilemez statik birimler olarak kabul edilir. Her deploy, yeni bir imaj sürümü gerektirir.

#### 4. Operasyonel Kısıtlamalar ve Sorun Giderme

Docker ile çalışırken, işletim sistemi seviyesindeki bazı teknik limitlere dikkat edilmelidir:

* Unix tabanlı sistemlerde, Docker ile iletişim kurulan soket dosyasının yolu (Path) belirli bir karakter sınırını aşarsa "Failed to initialize build" hatası alınabilir.
  * *Çözüm:* `TMPDIR` ortam değişkeni, daha kısa bir dizine (Örn: `/tmp`) yönlendirilerek soket yolunun kısalması sağlanır.
* Packer'ın her eklenti (Plugin) için ayrı bir süreç (Process) başlatması, yoğun paralel işlemlerde dosya tanımlayıcı (File Descriptor) limitlerinin (`ulimit -Sn`) aşılmasına neden olabilir. Sistem kaynaklarının bu yükü karşılayacak şekilde yapılandırılması gerekir.

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://note.onurbolatoglu.com/packer/desteklenen-platformlar/docker.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
