“Sıfırdan” Kendi Docker Temel Görüntülerinizi Nasıl Oluşturursunuz Yerel ve Uzak Depolardaki Git Dalları Nasıl Silinir Uzak SSH Sunucusunda Yerel Kabuk Komut Dosyası Nasıl Çalıştırılır Bir Parola Kullanmanız Gerekiyorsa SSH Oturumları Nasıl Otomatikleştirilir Docker Konteyneri Durdurmadan Nasıl Temizlenir ve Silinir Docker Görüntüleri Nasıl Temizlenir ve Silinir Ubuntu’da Rocket.Chat Nasıl Kurulur

0
19

Docker görüntüleri bir Dockerfile bu, bir temel görüntüyü ve kendi dosya sistemi katmanlarınızı ekleyen bir dizi talimatı tanımlar. yapmak istersen ne olur sahip olmak Yine de “temel görüntü”? İşte sıfırdan nasıl başlayacağınız ve sıfırdan eksiksiz bir kapsayıcı dosya sistemi nasıl oluşturacağınız.

Resim Nedir?

Docker görüntüleri, temel görüntü olarak genellikle popüler bir Linux dağıtımını kullanır. eğer yazdıysan FROM ubuntu:latest, FROM debian:latest veya FROM alpine:latest, temeliniz olarak bir işletim sistemi kullandınız. Ayrıca, belirli bir programlama dili veya çerçevesi için önceden yapılandırılmış bir görüntü kullanıyor olabilirsiniz, örneğin: FROM php:8.0 veya FROM node:16.

Bu görüntülerin tümü, uygulamalarınız için faydalı bir başlangıç ​​noktası sağlar. Ortak Unix yardımcı programları ve temel yazılım paketleri ile birlikte gelirler. Bunların hepsi, son görüntünüzün boyutunu artırır. İlk ilkelerden kendi dosya sisteminizi oluşturarak gerçekten minimal bir görüntü oluşturulmalıdır.

“Çizik” Görüntü

Docker, ilk dosya sistemi katmanını kontrol etmek istediğinizi belirten özel bir temel görüntü sağlar. Bu, resminizin en alt katmanıdır ve genellikle sizin tarafınızdan belirtilen temel resimle tanımlanır. FROM talimat.

“Sıfırdan” bir görüntü oluşturmak istediğinizde, yazı FROM scratch Dockerfile’ınızda bunun için gitmenin yolu budur! Bu size başlangıçta boş bir sayfa olan bir dosya sistemi verir.

FROM scratch
Reklamcılık

Ardından, konteynerin dosya sistemini ihtiyacınız olan ikili dosyalar ve kitaplıklarla doldurmak için Dockerfile’nizin geri kalanını her zamanki gibi kullanmalısınız.

“Çizik” nedir?

NS scratch “image” normal bir Docker görüntüsü gibi görünür ve hissedilir. Docker Hub’da bile listeleniyor. scratch aslında bir resim değil – işleyen bir resmin en düşük dosya sistemi katmanını gösteren ayrılmış bir anahtar kelimedir. Tüm Docker görüntüleri en üstte bulunur scratch onların ortak temeli olarak.

yapamazsın docker pull scratch ve onu kullanarak kapları çalıştırmak mümkün değildir. Boş bir görüntü katmanını temsil eder, bu nedenle Docker’ın çalıştıracağı hiçbir şey yoktur. Resimler şu şekilde etiketlenemez: scratch ya saklı doğası nedeniyle.

Çizik Görüntülere Neler Eklenebilir?

Üstüne işleyen bir görüntü oluşturmak için çok fazla şeye ihtiyacınız yok scratch. Eklemeniz gereken tek şey, görüntünüzün komutu olarak kullanabileceğiniz statik olarak derlenmiş bir Linux ikili dosyasıdır.

İşte C’den derlenmiş küçük bir “merhaba dünya” programını çalıştıran çalışan bir demo:

#include <stdio.h>
 
int main() {
    printf("Hello World");
    return 0;
}

C kodunuzu bir ikili dosyaya derleyin:

gcc -o helloworld hello.c

İkili dosyanızı çalıştırın ve terminalinize “merhaba dünya” yazdırıldığını gözlemleyin:

./helloworld
Reklamcılık

Artık ikili sisteminizi çalıştıran sıfırdan tabanlı bir Docker kapsayıcısı oluşturabilirsiniz:

FROM scratch
COPY helloworld /
CMD ["helloworld"]

Resminizi oluşturun:

docker build -t hello:latest .

ile görüntünün incelenmesi docker inspect tek bir katmana sahip olduğunu gösterecektir. Bu görüntünün dosya sistemi yalnızca bir dosya içerir, helloworld ikili.

Şimdi resminizi kullanarak bir kapsayıcı çalıştırın:

docker run hello:latest

Derlenmiş ikili dosyanız yürütülürken terminalinizde “merhaba dünya” göreceksiniz. Çizik tabanlı görüntünüz yalnızca ikili dosyanızı içerir, bu nedenle boyutu yalnızca birkaç KB olacaktır. Herhangi bir işletim sistemi temel görüntüsünün kullanılması, Alpine gibi minimum bir dağıtımla bile bunu birden çok megabayta yükseltir.

Hemen hemen tüm görüntüler, basit bir statik ikili programın ötesinde bazı bağımlılıklara sahip olacaktır. Bunları Docker dosyanızın bir parçası olarak resminize eklemeniz gerekecek. Standart Linux dağıtımlarında olduğu gibi kabul ettiğiniz araçların hiçbirinin, onları görüntünün dosya sistemine manuel olarak ekleyene kadar kullanılamayacağını unutmayın.

Scratch’i Ne Zaman Kullanmalı?

itibaren başlama kararı scratch uygulamanızın bağımlılıklarına ve görüntü taşınabilirliği konusundaki hedeflerinize dayanmalıdır. Görüntüler scratch görüntü boyutunun ve oluşturma sürelerinin önemli olduğu statik olarak derlenmiş ikili dosyaları barındırmak için en uygundur.

scratch size çalışmanız için temiz bir sayfa sağlar, bu nedenle doğru bir şekilde yazmak için bir miktar ilk yatırım gerektirir. Dockerfile ve zamanla koruyun. Gibi bazı Docker komutları attach siz eklemediğiniz sürece kapsayıcınızın içinde kabuk olmayacağından varsayılan olarak çalışmayacaktır.

Reklamcılık

kullanma scratch ağır çevresel bağımlılıkları olan yorumlanmış dilleri kullanırken değerinden daha fazla sorun olabilir. Bu paketlerin en son sürümlerine başvurmak için temel resminizi sürekli olarak güncellemeniz gerekir. Varolan bir Docker Hub temel görüntüsünün minimal bir lezzetini kullanmak genellikle daha kullanışlı ve sürdürülebilirdir.

Özet

FROM scratch Dockerfile’de, eklenen her katmanın kontrolünün sizde olduğu boş bir dosya sisteminden başlamak istediğinizi belirtir. Uygulamanızın ihtiyaç duyduğu bağımlılıklar dışında her şeyden arındırılmış son derece akıcı görüntüleri kolaylaştırır.

Çoğu geliştiricinin kullanması olası değildir scratch doğrudan konteyner kullanım durumlarının çoğu için uygun olmadığı için. Kendi kendine yeten statik ikili dosyaları birkaç çevresel gereksinimle kapsayıcı hale getirmek istiyorsanız bunu kullanmayı seçebilirsiniz.

scratch ayrıca “konteynerler” ve sanal makineler arasındaki farkın açık bir göstergesi olarak işlev görür. Yalnızca bir yürütülebilir dosya içeren bir görüntü, işlem ana makinenizin çekirdeğinde çalıştırıldığı için kullanılabilir bir Docker kapsayıcıdır. Normal bir sanal makinenin ana bilgisayarından bağımsız olarak başlatılması gerekir, bu nedenle görüntüsünde tam bir işletim sistemi çekirdeği içermelidir.

LEAVE A REPLY

Please enter your comment!
Please enter your name here