Dockerfile Detayları ve Performans Artırma

Merhaba, bu makalemde sizlere dockefile içeriği hakkında biraz daha detaylı bilgiler vermeye çalışacağım
Dockerfile Detayları
Dockerfile özünde bir .txt metin dosyasıdır. Ancak, normal .txt dosyalarının aksine, dosya uzantısı olmadan Dockerfile olarak kaydedilir.
Bir docker image oluşturmak için içerisine bir takım komutlar yazarız. Dockerfile bir docker image oluşturmak için çok önemli olduğu kadar aslında işleri oldukça pratikleştiren bir dosyadır.

Docker, Dockerfile dosyasını yukarıdan aşağı doğru okur bu nedenle komut satırları önemlidir.Büyük küçük harf duyarlılığı yoktur.
# işareti kullanılarak yorum satırı yazılabilir.

Dockerfile Komutları
- FROM
- ENV
- EXPOSE
- RUN
- COPY
- ENTRYPOINT
- WORKDIR
- CMD
FROM
FROM komutu, temel image olarak kullanmak istediğiniz işletim sistemini belirtmek için kullanılır. Temel bir image üzerinde derleme yapmayı düşünüyorsanız, FROM komutu Dockerfile’daki ilk komut olmalıdır .
ENV
ENV komutu, Docker image oluştururken ortam değişkenlerini ayarlamak için kullanılır. Ayrıca, bu ayarlanan ortam değişkenlerinin de container başlatıldıktan sonra erişilebilir olduğunu göreceksiniz.
EXPOSE
Expose komutu ,bağlı container için bir bağlantı noktası açar. Docker Container üzerindeki hangi bağlantı noktasının işletim sistemine bakacağını belirtir.
RUN
Run komutu, uygulamamızı yapılandırmaktadır.
COPY
Copy komutu, Docker istemcinizin geçerli dizininden dosyaları kopyalamaktadır.
ENTRYPOINT
Entrypoint komutu, container ayağa kalktığı anda ilk önce çalıştırılacak komutları ve parametreleri belirler.
WORKDIR
Workdir komutu, Docker image oluştururken mevcut dizini değiştirmenize olanak tanır.
CMD
CMD komutu, container ayağa kalktığı anda çalıştırılacak komutlardır. Docker yalnızca bir CMD komutu çalıştırabilir. Bu nedenle, iki veya daha fazla CMD talimatı eklerseniz, Docker yalnızca sonuncuyu, yani en güncel olanı çalıştırır.
Daha hızlı container oluşturmak için öneriler

- Docker image’ları oluştururken gereksiz komutlardan kaçının.
- Minimalist bir işletim sistemi kullanmaya çalışın.
Daha fazla özellikli bir işletim sistemi yerine size yetecek kadar basit bir (Alpine Linux ,RancherOS) işletim sistemi kullanmak daha çok performans sağlayacaktır. - Dockerfile Cache sistemi kullanmak size hız kazandıran diğer unsurlardandır.
- Tekbir monolitik yapı yerine, microservice mimarisi ile çalışmak containerları parça parça oluşturmak size hız kazandıracaktır.
Umarım faydalı olur şimdilik hoşça kalın…