Liman işçisi

Dockerfile Nasıl Çalışır??

Dockerfile Nasıl Çalışır??
Docker görüntüsünün yardımıyla yalnızca tek bir kapsayıcıyı dağıtabilirsiniz. Ancak, aynı görüntüden birkaç kapsayıcıyı (her biri farklı görevler için) dağıtmanız gerekirse ne olur?? Bunu dockerfile yardımıyla çözebilirsiniz.

Dockerfile, kullanıcının bir görüntüyü bir araya getirmek veya oluşturmak için komut satırında arayabileceği tüm komutları içeren basit bir metin dosyasıdır. Docker derlemesinin yardımıyla, docker dosyasında arka arkaya birden çok komut tanımını çalıştıran derlemeyi kolayca otomatikleştirebilirsiniz.

Örneğin, belirli geliştirme ihtiyaçlarınız için liman işçisi hub'ından liman işçisi görüntüsünü indirmek istiyorsunuz. Ardından görüntüyü güncellemek, geliştirme süreciniz için bazı paketler kurmak istiyorsunuz. Bu durumda, bir docker dosyası oluşturabilir, özel ihtiyaçlarınız için tüm parametreleri dahil edebilir ve özel imajınızı oluşturabilirsiniz. Bir docker dosyası oluşturduktan sonra, geliştirme süreciniz için gerekli tüm paketleri manuel olarak yüklemeden aynı görüntüyü oluşturmak için tekrar tekrar kullanabilirsiniz.

Dockerfile Temel

Dockerfile ile çalışmadan önce, nasıl dockerfile yapılacağını bilmek önemliyse. Dockerfile, belirli bir görüntü oluşturmak için kullanılabilecek belirli anahtar kelimeler içerir. Bir docker dosyasında kullanılan tüm anahtar kelimelerin kısa bir açıklaması aşağıda listelenmiştir:

Dockerfile'ı Oluşturmak

Bu bölümde, Ubuntu temel görüntüsünden bir LAMP sunucu görüntüsü oluşturmak için bir docker dosyası oluşturacağız.

İlk olarak, docker dosyasını depolamak için bir dizin oluşturmanız gerekecek. Aşağıdaki komutla oluşturabilirsiniz:

mkdir LAMBA

Ardından, dizinin içinde Dockerfile adlı bir dizin oluşturun:

nano LAMP/Docker dosyası

Aşağıdaki satırları ekleyin:

ubuntu'dan: en son
BAKICI Hitesh Jethva
ENV DEBIAN_FRONTEND=etkileşimsiz
RUN apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-ortak php-mysql php-json php-curl -y
CMD ["apachectl","-D","ÖNGRUNA"]
MARUZ KALMA 8080

İşiniz bittiğinde dosyayı kaydedin ve kapatın.

Dockerfile ile Resim Oluşturma

Dockerfile'ı oluşturduktan sonra, Dockerfile'ın yardımıyla kolayca özel bir LAMP imajı oluşturabilirsiniz.

İlk olarak, dizini LAMP olarak değiştirin ve o dosyadan görüntüyü oluşturmak için aşağıdaki komutu çalıştırın:

cd LAMBA
docker build -t "lamba: Dockerfile".

Yukarıdaki komut, Ubuntu'nun en son görüntüsünü Docker Hub'dan indirmeye ve Dockerfile dosyasında belirtilen gerekli paketleri yüklemeye başlayacaktır. Görüntü başarıyla oluşturulduktan sonra aşağıdaki çıktıyı görmelisiniz:

Yapı bağlamını Docker arka plan programı 2'ye gönderme.048kB
Adım 1/6 : ubuntu'dan: en son
en son: Kütüphaneden/ubuntu'dan çekme
54ee1f796a1e: Çekme tamamlandı
f7bfea53ad12: Çekme tamamlandı
46d371e02073: Çekme tamamlandı
b66c17bbf772: Çekme tamamlandı
Özet: sha256:31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Durum: ubuntu için daha yeni bir resim indirildi: en son
---> 4e2eef94cd6b
Adım 2/6 : BAKICI Hitesh Jethva
---> 047977af2c2a'da çalışıyor
Ara kabın çıkarılması 047977af2c2a
---> 1331df625c4c
Adım 3/6 : ENV DEBIAN_FRONTEND=etkileşimsiz
---> 3597152c7a1b'de çalışıyor
Ara kapsayıcıyı çıkarma 3597152c7a1b
---> 86c82c95e75d
Adım 4/6 : apt-get update -y && apt-get install apache2 mariadb-server'ı ÇALIŞTIRIN
libapache2-mod-php php php-cli php-ortak php-mysql php-json php-curl -y
Ara kapsayıcıyı çıkarma 322532299fd9
---> f6897a9554f7
Adım 5/6 : CMD ["apachectl","-D","ÖNGORUN"]
---> 669635bc8bcb'de çalışıyor
Ara kapsayıcıyı çıkarma 669635bc8bcb
---> e8400eb2e677
Adım 6/6 : 8080'İ MARUZ KALDIRIN
---> 937ae2b2d305'te çalışıyor
Ara kapsayıcıyı çıkarma 937ae2b2d305
---> 2123a857361d
2123a857361d başarıyla oluşturuldu
Başarıyla etiketlenen lamba:Dockerfile

Artık yeni oluşturduğunuz bir resmi aşağıdaki komutu çalıştırarak listeleyebilirsiniz:

liman işçisi resimleri

Aşağıdaki çıktıyı görmelisiniz:

DEPO ETİKETİ GÖRÜNTÜ KİMLIĞI OLUŞTURULAN BOYUT
lamba Dockerfile 2123a857361d 44 saniye önce 520MB
ubuntu en son 4e2eef94cd6b 8 gün önce 73.9MB

Artık elinizde özel bir LAMP sunucu imajınız var. Aşağıdaki komutla her komutun geçmişini de görebilirsiniz:

docker geçmişi lambası:Dockerfile

Aşağıdaki çıktıyı görmelisiniz:

BOYUTTA OLUŞTURULAN GÖRÜNTÜ OLUŞTURULDU YORUM
2123a857361d 16 dakika önce /bin/sh -c #(nop) EXPOSE 8080 0B
e8400eb2e677 16 dakika önce /bin/sh -c #(nop) CMD ["apachectl" "-D" "FO… 0B
f6897a9554f7 16 dakika önce /bin/sh -c apt-get update -y && apt-get inst… 446MB
86c82c95e75d 17 dakika önce /bin/sh -c #(nop) ENV DEBIAN_FRONTEND=nonin… 0B
1331df625c4c 17 dakika önce /bin/sh -c #(nop) BAKICI Hitesh Jethva 0B
4e2eef94cd6b 8 gün önce /bin/sh -c #(nop) CMD ["/bin/bash"] 0B

LAMP Görüntüsünden Kapsayıcı Oluşturma

Şimdi, aşağıdaki komutu kullanarak görüntünüzden bir kapsayıcı çalıştırabilirsiniz:

docker run -dit lambası:Dockerfile

Kapsayıcı başlatıldıktan sonra aşağıdaki çıktıyı görmelisiniz:

0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208

Aşağıdaki komutu kullanarak çalışan kapsayıcıyı doğrulayabilirsiniz:

liman işçisi ps

Aşağıdaki çıktıyı almalısınız:

KONTEYNER KİMLİK GÖRÜNTÜ KOMUT OLUŞTURULDU DURUM PORT İSİMLERİ
c14794784eb2 lambası:Dockerfile "apachectl -D FOREGR… " 2 dakika önce Yukarı 2 dakika 0.0.0.0:8080->8080/tcp ilginç_ramanujan

Sonuç

Bu kılavuzda Dockerfile nedir ve Dockerfile ile nasıl docker imajı oluşturulacağını öğrendiniz. Bu, çekilen bir görüntüde değişiklik yapmak yerine özel görüntülerinizi oluşturmak için çok kullanışlıdır.

How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...
How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...