Post

Docker File Nedir? - What is Docker File?

Docker File Nedir? - What is Docker File?

Docker tarafından kullanılan bir konfigürasyon dosyasıdır. Bu dosya, bir yazılımın ve uygulamanın Docker konteynerine dahil edilmesi için gerekli olan tüm adımları ve komutları içerir. Docker tarafından bir konteyner oluşturulurken kullanılır ve konteynerin nasıl yapılandırılacağı, hangi yazılım paketlerinin yükleneceği, hangi portların açık olacağı, hangi dosyaların dahil edileceği vb. ayarlamaları içerir. Yani Dockerfile, bir uygulamanın Docker konteynerine nasıl konumlandırılacağı hakkında talimatlar içerir.

Dockerfile'ın temel bileşenleri şunlardır:

  • FROM: Bu satır, Docker image'ının neye dayanacağını belirler. Yani oluşturulan imajın hangi temel görüntüden başlayacağını belirler. Örneğin: FROM ubuntu:20.04
  • MAINTAINER: Bu satır, Dockerfile'ın kim tarafından yönetildiğini belirtir. Örneğin: MAINTAINER isimsoyisim [email protected]
  • RUN: Bu satır, imajda çalıştırılacak komutları belirler. Örneğin: RUN apt-get update && apt-get install -y nginx
  • CMD: Bu satır, konteyner başlatıldığında çalıştırılacak varsayılan komutu belirler. Örneğin: CMD ["nginx", "-g", "daemon off;"]
  • EXPOSE: Bu satır, konteynerın hangi portlarını kullanacağını belirtir. Örneğin: EXPOSE 80 443
  • ENV: Bu satır, konteyner ortam değişkenlerini belirler. Örneğin: ENV MY_VAR="my_value"
  • ADD/COPY: Bu satırlar, Docker imajına dosya eklemek veya kopyalamak için kullanılır. Örneğin: COPY ./src /app
  • WORKDIR: Bu satır, komutların çalışacağı dizini belirler. Örneğin: WORKDIR /app
  • USER: Bu satır, çalışacak kullanıcı adını belirler. Örneğin: USER nginx
  • VOLUME: Bu satır, konteynerın bağlanabileceği bir hacim oluşturur. Örneğin: VOLUME /data
  • ARG: Bu satır, Dockerfile içinde kullanılacak değişkenleri tanımlar. Bu değişkenler, "docker build" sırasında kullanılabilir. Örneğin: ARG NODE_VERSION=14
  • LABEL: Bu satır, imaj hakkında açıklama ve meta verileri eklemek için kullanılır. Örneğin: LABEL description="This is a custom Docker image for Node.js applications"
  • ONBUILD: Bu satır, başka bir Dockerfile tarafından kullanılacak işlemleri belirler. Örneğin: ONBUILD COPY . /app
  • HEALTHCHECK: Bu satır, konteynerın sağlığını kontrol etmek için kullanılır. Örneğin: HEALTHCHECK --interval=5m --timeout=3s CMD curl --fail http://localhost:80 || exit 1
  • SHELL: Bu satır, Dockerfile içinde kullanılacak kabuk (shell) tipini belirler. Örneğin: SHELL ["/bin/bash", "-c"]

***Docker File Pattern:

FROM apache:latest

LABEL name="test-server"
LABEL maintainer="guler"
LABEL version="4.5.8"

WORKDIR /usr/share

COPY homepage.php /usr/share .

ENV cls="clear"

EXPOSE

USER faruk[:adminler]
USER Göksel

ARG version

RUN apt install php curl net-tools

ADD https://farukguler.com/repos/container.zip/icerik .

HEALTHCHECK

CMD [ "node" ]

ENTRYPOINT ["docker-entrypoint.sh"]

SHELL [“/bin/bash”, “-c”]

VOLUME

Best Regards. – Saygılarımla.

This post is licensed under CC BY 4.0 by the author.