Docker Etiketleri Nedir ve Bunları Ne Zaman Kullanmalısınız? Kubernetes vs Docker Swarm: Hangisini Kullanmalısınız? Uzak SSH Sunucusunda Yerel Kabuk Komut Dosyası Nasıl Çalıştırılır Docker Konteynerinden Durdurulmadan Ayrılır DigitalOcean Spaces Kovalarında Süre Sonu Politikası Nasıl Ayarlanır Apache DDoS Koruması için mod_evasive Nasıl Yapılandırılır Docker Görüntüleri Nasıl Temizlenir ve Silinir

0
25

Bir binadaki Docker logosunun fotoğrafıMichael Vi/Shutterstock.com

Docker etiketleri, kapsayıcılarınıza, resimlerinize, birimlerinize ve diğer kaynaklarınıza rastgele meta veriler eklemenize olanak tanır. Docker nesnelerinizi kuruluşunuza, iş akışınıza veya araç zincirinize özel bilgilerle etiketleyebilirsiniz.

Etiketlerin, kendi ihtiyaçlarınıza göre uyarlayabileceğiniz açık uçlu bir sınıflandırma sistemi olması amaçlanmıştır. Yeni etiketlerin nasıl oluşturulacağı ve bunları Docker CLI tarafından döndürülen nesneleri filtrelemek için nasıl kullanacağınız aşağıda açıklanmıştır.

Desteklenen Nesne Türleri

Etiketleri aşağıdaki Docker nesneleriyle kullanabilirsiniz:

  • Konteynerler
  • Görüntüler
  • Birimler
  • Ağlar
  • Daemon örnekleri
  • Sürü düğümleri ve hizmetleri

Her nesne türü, CLI komut grubunun bir parçası olarak etiketleri destekler. kullanıp kullanmaman önemli değil docker image, docker network, veya docker volume.

Etiket Ekleme

Etiketler, bir nesne oluşturduğunuzda eklenir. İlk oluşturulduktan sonra değiştirilemezler; değişiklik gerekliyse nesneyi silmeniz ve yeni bir sürümle değiştirmeniz gerekir. Bir istisna, herhangi bir zamanda dinamik olarak güncellenebilen Docker Swarm düğümlerine ve hizmetlerine atanan etiketlerdir.

NS --label flag etiketleri ayarlamak için kullanılır. Her etiket, anahtar ve değerin bir eşittir (=) imza:

docker run my-image:latest --label demo-label=example-value
Reklamcılık

Etiket anahtarları, küçük harfli alfasayısal karakterler, noktalar (.) ve kısa çizgiler (-). Alfanümerik bir karakterle başlamalı ve bitmelidirler. DNS notasyon kuralları izlenir, bu nedenle birden çok ardışık nokta ve kısa çizgiye izin verilmez.

Docker, herhangi bir diziyi etiket değeri olarak kabul eder, ancak serileştirme veya yayınlama gerçekleşmediğine dikkat edin. JSON veya XML gibi karmaşık değerler, düz bir dize olarak depolanacak ve alınacaktır.

Etiketler için En İyi Uygulamalar

Docker, ekosistem genelinde birlikte çalışabilirliği artıran etiketlerinizi adlandırmak için bazı yönergeler önerir. Uygulama mağazaları ve paket yöneticileri tarafından tercih edilen ters DNS gösterimini kullanarak ad alanlı etiketlerin kullanılmasını önerir:

docker run my-image:latest --label=com.example.demo-label=example-value

Bu uygulama, etiketler derleme sisteminizdeki araçlar tarafından ayarlandığında anahtar adlandırma çakışmalarını önlemeye yardımcı olur. Birçok otomasyon tesisi, izleme ve yönetimi kolaylaştırmak için oluşturdukları Docker nesnelerine kendi etiketlerini ekler. Docker, yinelenen etiket anahtarlarını desteklemez ve aynı anahtarın iki kez kullanılması, son tekrarın değerinin kullanılmasına neden olur.

Docker, CLI tarafından dahili kullanım için bazı ad alanları ayırır. Anahtarlarınızın önüne aşağıdaki ad alanlarından herhangi birini eklememelisiniz:

  • com.docker.*
  • io.docker.*
  • org.dockerproject.*

Zorlayıcı bir neden olmadıkça, tüm etiketlerinizin önüne kendi alan adınızı ekleyin. Docker’ın CLI’si, yönergelerin hiçbirini zorlamaz, ancak bunları takip etmek, aşağıdaki gibi ortak bir anahtar riskini en aza indirmeye yardımcı olur. name veya version istemeden üzerine yazılır.

Etiketleri İnceleme

NS docker inspect komutu, çıktısının bir parçası olarak atanmış etiketlerin bir listesini içerir. Bu, kimlik veya adla tanımlanan kaplar ve resimlerle çalışır. Ağlar ve birimlerle kullanılan etiketlere, inspect bu CLI gruplarının alt komutu, örneğin docker network inspect my-network.

Reklamcılık

docker inspect çıktıyı olduğu gibi sindirmek zor olabilir. Etiketler bölümü, terminalinize gönderilen JSON’un içine gömülecektir. kullanabilirsiniz --format Etiketleri ayrı ayrı görüntülemek için bayrak. Çıktı formatı olarak JSON’u seçme ve elde edilen dizeyi borulama jq kolay okuma için size renklendirilmiş bir etiket listesi verir.

docker inspect my-container --format="{{json .Config.Labels}}" | jq

Nesne Listelerini Filtreleme

Docker CLI komutları gibi docker ps ve docker images bir nesne listesi oluşturan öğeler yalnızca belirli bir etiket kümesine sahip öğeleri gösterecek şekilde filtrelenebilir.

Kapsayıcıları şu şekilde gösterebilirsiniz: demo etiket ayarlandı example:

docker ps --filter "label=com.example.demo=example"

Birden çok etikete filtrelemek istiyorsanız, --filter bayrak:

docker ps --filter "label=a=1" --filter "label=b=2"

Bazen tüm nesneleri belirli bir etiketle göstermek isteyebilirsiniz. Etiketin anahtar adını belirtin ancak bunu başarmak için değeri atlayın:

docker ps --filter "label=com.example.demo"
Reklamcılık

ile herhangi bir konteyner com.example.demo etiket, atanan değerden bağımsız olarak komutun çıktısına dahil edilir.

Etiket Özellikleri

OCI Kapsayıcılar Spesifikasyonu, kapsayıcı görüntüleri için yaygın kullanım durumlarını kapsayan birkaç geleneksel etiketi tanımlar. Bunlar içinde var org.opencontainers.image ad alanı.

  • org.opencontainers.image.created – Görüntü oluşturma süresi.
  • org.opencontainers.image.url – Resim hakkında bilgi almak için URL.
  • org.opencontainers.image.version – Konteyner içindeki ana yazılımın sürümü (Olumsuz resmin sürümü).
  • org.opencontainers.image.licenses – Konteyner lisanslama bilgileri.
  • org.opencontainers.image.title – Kapsayıcı için insan tarafından okunabilir bir ad.

OCI etiketlerinin tam listesini spesifikasyonda görüntüleyebilirsiniz. Bu bilgilerden herhangi birini resimlerinize eklerseniz, OCI etiketlerini kullanmak iyi bir fikirdir. Görüntünüzü bu meta verileri ortaya çıkaran ve filtreleyen topluluk araçlarıyla uyumlu hale getirmeye yardımcı olurlar.

Görüntü Oluşturma Zamanında Etiket Ekleme

Etiketleri kullanarak görüntü oluşturma zamanında ayarlayabilirsiniz. LABEL Dockerfile’nizdeki talimat. Etiketlere uygulanacak resim, ondan başlayan kaplara değil. Görüntüler ayrıca ebeveynleri tarafından tanımlanan etiketleri de devralır. Daha önceki bir katman tarafından oluşturulmuş bir etiket ayarlayan katman, orijinal değeri geçersiz kılar.

LABEL com.example.demo=example com.example.example=demo

LABEL com.example.image=service

Birden çok etiketi tek bir etikette birleştirebilirsiniz LABEL talimat verin veya talimatı birkaç kez tekrarlayın. Etkisi, sonuçta tüm etiketler resminize dahil edileceğinden bağımsız olarak aynıdır.

Özet

Etiketler, Docker nesnelerinize kendi meta verilerinizi eklemek için bir mekanizmadır. Etiketler kasıtlı olarak keyfi ve açık uçlu olsa da, yaygın olarak kullanılan alanları ayarlarken OCI spesifikasyonlarını takip etmeye çalışmalısınız.

Reklamcılık

Etiketleri ayarlamak, bir nesneyle ilgili olabilecek herhangi bir ek bilgiyi eklemenizi sağlar. Kuruluşunuzda bir dizi referans etiketi tanımlamak, herkesin çalışmasına izin verir. docker inspect dış belgelere çapraz referans vermek yerine kritik kapsayıcı ayrıntılarını almak için. Etiketler ayrıca Docker CLI çıktısını filtrelemenize izin vererek daha akıcı bir yönetim deneyimi sunar.

LEAVE A REPLY

Please enter your comment!
Please enter your name here