DockerFile nedir? DockerFile nasıl kullanılır ve oluşturulur? Dockerfile nasıl çalıştırılır?
Docker’ı bugün kim tanımıyor? Bu konteyner teknolojisi, esneklik, verimlilik, taşınabilirlik, değişmezlik, ölçeklenebilirlik ve güvenlik dahil olmak üzere uygulamaları çalıştırmak için çok sayıda avantaj sunar. Docker’ı sisteminize kurduktan sonra, WordPress gibi yazılımlar için genel kayıt defterinden (hub.docker.com) hızlı bir şekilde bir Docker görüntüsü indirebilirsiniz. Ardından, bu yazılımı çalıştırmak için makinenizde bu görüntüden hızlı bir şekilde bir kap oluşturabilirsiniz.
Zaten çok büyük! Ancak Docker, kendi uygulamalarınızı ve her uygulamaya özgü kitaplıkları bir araya getiren kendi görüntülerinizi her zaman kolayca oluşturmanıza izin vererek sizi daha da ileriye götürebilir.
Bunu, bir görüntü yükleyerek, bu görüntüden bir kapsayıcı oluşturarak, kapsayıcıyı değiştirerek (örneğin, uygulamanızı içine yükleyerek) ve ardından değiştirilen kapsayıcıdan bir görüntü oluşturmak için docker commit komutunu kullanarak yapabilirsiniz. .
Ancak, ihtiyacınız olan Docker görüntüsünü en başından itibaren mantıksal ve düzenli bir şekilde katman katman oluşturmak için Dockerfile’ı da kullanabilirsiniz. Dockerfile, bir veritabanından işlevsel bir uygulamaya gitmek için farklı adımları açıklayan bir metin dosyasıdır. Docker, gerekli görüntüyü otomatik olarak oluşturmak için Dockerfile’a koyduğunuz talimatları okur.
Bir Dockerfile’daki ilk talimatla (FROM) belirtilen temel görüntüden başlayarak Docker, her bir talimatı Dockerfile’da belirtilen sırada yürütür ve komut başına ek bir katman ekler. Gelecekte bir talimatın değiştirilmesi gerekirse, yalnızca o talimatın katmanından miras alan katmanlar etkilenecektir. Her katman bir SHA sağlama toplamı ile imzalanır ve bu, katman içeriğindeki en ufak bir değişikliğin algılanmasını sağlar.
Dolayısıyla, değişme olasılığı en yüksek parçalar için Dockerfile’ın sonuna talimatlar koyarak, diğer katmanlar üzerindeki etkiyi en aza indirmiş olursunuz. Ayrıca değişebilecek bağımlılıkları sınırlandırarak yankıları da önleyeceksiniz.
DockerFile’da Temel Bilgiler
Dockerfile’ı kullanmanın ana adımları şunlardır:
CMD: Yalnızca konteyner başlatılırken yürütülecek bir komut belirtmek için.
Basit bir Dockerfile daha sonra şöyle görünebilir:
Bu örnekte:
FROM, Alpine’nin Docker görüntüsünden bir katman oluşturur (Docker Hub’dan indirmek için çok kompakt ve hızlı bir Linux dağıtımı).
COPY, dizindeki dosyaları / app klasörüne ekler.
RUN, Alpine altında “make” ikili dosyasını kurar ve uygulamanızı “make” ile oluşturur.
CMD, konteynır başlatıldığında “Hazır! “Ekranda.
Her ifade, ara kap olarak bir katman oluşturur. Dolayısıyla bu örnekte dört tane var ve Docker yukarıda listelenen sırayla bu katmanlardan 1’den 4’e kadar geçecek.
Bir sonraki adım, bu Dockerfile’ın bir görüntüye dönüştürülmesi olacak. Bu noktada Docker, “.dockerignore” adlı bir dosya arar. Bu dosya bir .gitignore dosyasıyla aynı şekilde çalışır. Burada listelenen dosyaları, örneğin veritabanı dökümlerini (çok büyük) veya bulut hesaplarınıza erişim anahtarlarını (çok hassas) kopyalamamanız gerektiğini belirtir. Dolayısıyla, bir ihtiyaç varsa, .dockerignore dosyanızı şimdi oluşturun ve Dockerfile ile aynı seviyeye yükseltin.
Dockerfile’ınızı bir Docker görüntüsüne dönüştürmek için docker build komutunu aşağıdaki gibi kullanacaksınız: docker build -t image_name: tag_name location_du_Dockerfile
Örneğin:
-t seçeneği, görüntüyü adlandırmak için kullanılır. Bu örnekte, Dockerfile mevcut dizindedir, yani “. “.
Docker görüntüleri komutu, bu şekilde oluşturulan görüntüyü adıyla (“example_image1” ve “Görüntü Kimliği”, örneğin “db45f2dc112b”) tüm görüntülerin listesinde görmenizi sağlar.
Konteyneri başlatmak için, etkilenen görüntünün adıyla docker run komutunu kullanın, örneğin:
Dockerfile’ınızda ek komutlar
Elbette Dockerfile’ınızda kullanabileceğiniz başka komutlar da var. İşte bazı örnekler:
EXPOSE, Docker’a, kapsayıcının çalışma zamanında belirtilen ağ bağlantı noktalarından erişilebilir olduğunu bildirir.
ENV bir ortam değişkeni tanımlar.
GİRİŞ NOKTASI, kapsayıcı çalışma zamanında yürütülecek bir ikili dosyayı veya komut dosyasını belirtir.
VOLUME, ana bilgisayar ile dockerize katman arasında bir bağlama noktası oluşturur.
KULLANICI, aşağıdaki RUN / CMD / ENTRYPOINT komutları için kullanıcı adını belirler.
WORKDIR, çalışma dizinini tanımlar.
ARG, kapsayıcı oluşturma aşamasında kullanılacak bir değişkeni tanımlar.
ONBUILD, görüntü başka bir yapının temeli olarak kullanıldığında bir tetikleme talimatı ekler.
STOPSIGNAL, çıkış için konteynere gönderilecek sistem çağrı sinyalini tanımlar.
LABEL, resimlerinize, kapsayıcılarınıza veya arka plan programlarınıza anahtar / değer meta verileri uygular.
Daha eksiksiz bilgi için şu sayfaya başvurabilirsiniz: https://docs.docker.com/engine/reference/builder/
Peki şimdi Dockerfile’ınızın çevrimiçi dağıtımı için?
DockerFile’ınızı tamamladıktan ve görüntünüz beklentilerinizi karşıladığında, tek istediğiniz uygulamanızı paylaşmak için yüklemektir, değil mi?
Ancak, bunu yapmak için şunları yapmanız gerekir: Çalışanlarla bir CI / CD, görüntülerinizi depolamak için özel bir kayıt oluşturun, Bulut Sağlayıcı üzerinde bir Kubernetes platformu oluşturun, bir
yapılandırın em> yük dengeleyici ve sunucular, bir alan adı vb. ekleyin….
Çok daha basitleri var ! Özel uygulamanızı yüklemek için DockerFile’ınız da dahil olmak üzere kodunuzu Artifakt’a aktarmanız yeterlidir .
Nasıl çalışır ? Çok basit, tüm dağıtım ve altyapı oluşturma sürecini otomatik hale getirdik. Kodunuzda bir DockerFile olup olmadığını kontrol ediyor ve yerel olarak yaptığınız gibi görüntünüzü oluşturmaya özen gösteriyoruz ve ardından bu görüntüyü altyapımıza dağıtabilmemiz için özel bir kayıt defterine aktarıyoruz.
Son olarak, size ortamınıza karşılık gelen bir URL sağlarız, bu URL uygulamanızı gösterir (resim). Başvurunuz çevrimiçi! Tüm bunlar tamamen otomatiktir ve teknolojimiz tarafından yönetilir , böylece kodunuza odaklanabilirsiniz veya görüntünüzü iyileştirebilir ve ortamınızı güncellemek için hepsini Artifakt’a geri aktarabilirsiniz.
Hatta daha da hızlı gidebilir ve DockerFile oluşturma zahmetine girmeyiz , Artifakt konsolunu kullanıyorsanız uygulama türünü seçebilirsiniz ve size sağlayacağız varsayılan olarak bu uygulamaya karşılık gelen bir kod ve bir dockerfile (örn: symfony, wordpress, nuxtjs,…), bu uygulamayla aynı zamanda bir ilk ortamı oluşturacağız.
İlk olarak https://www.artifakt.io .
adresinde yayınlanmıştır.