Dockerfile örnekleri yaparken aslında komutların bir kısmını gördük. Bu bölüm bu komutların daha iyi açıklanması için kullanılmıştır.
CMD: Bu komut, container çalışma zamanında bir komutu yürütmek için kullanılır.
CMD command parametreler…
Burada command işletim sistemi üzerinde çalıştırılabilen komuttur. Bu komuta bir veya birden fazla parametre gönderebiliriz. Bu ifadenin doğru çalışması çok önemlidir. Bu ifadeleri öncelikle işletim sistemi üzerinde test edebilirsiniz.
ENTRYPOINT: Dockerfile’da CMD ve ENTRYPOINT komutları, Docker container’larının çalıştırılması sırasında çalıştırılacak komutları belirtir. Fakat bu iki komut arasında bir fark vardır. ENTRYPOINT komutu, Docker container’ının çalıştırılması sırasında çalıştırılacak olan komutu belirtir ve bu komuta extra dışarıdan parametre gönderilebilir. CMD komutu ise, ENTRYPOINT komutunun çalıştırılması sırasında geçirilecek parametreler direkt dosya içinde belirtilir. Yani, ENTRYPOINT komutuna ekstra parametreler geçirilebilir ve ENTRYPOINT komutu bu parametreleri kullanarak çalışır. Dockerfile içinden bir örnek verelim. (Tüm Dockerfile dosyası değil, Python kurulu olmadan çalışmaz…)
1 2 3 4 5 |
# Python yorumlayıcısını ayarla ENTRYPOINT ["python3"] # İki parametre ile Python uygulamasını çalıştır CMD ["app.py", "-p", "80"] |
ENTRYPOINT komutu python3 komutunu çalıştırır ve bu komuta CMD komutu üzerinden app.py dosyasının -p 80 parametrelerini geçirir. CMD yerine terminal ekranında da veri gönderilebilir. (CMD olmasaydı, terminalden)
1 |
docker run image-name app.py |
ENV: Bu komut, container’daki ortam değişkenlerini ayarlamak için kullanılır.
ENV key = value
Ahantar ve değer kısmından oluşan birden fazla parametre içerebilir. Örneğin:
ENV var1=Docker var2=Container
WORKDIR: Container içindeki çalışma dizini belirler. Özellikle programlama dillerinde çalışacak dosyalar var ise WORKDIR sayesinde dizini uzun uzun yazmadan direkt dosyaları kullanabilirsiniz.