Docker İpucu #3: Neden Docker Container Adı boring_wozniak Olarak Oluşamaz?

Docker container isimlendirmesi

Docker’da container oluştururken elle isim vermek zorunda değiliz. Bu durumda Docker’ın kendisi bir container ismi seçiyor. Bu isimleri seçerken de bir adet sıfat seçiyor ve sonuna bir bilim insanı veya hacker ismi ekliyor.

Docker’daki container isimlerini inceleyelim

Çalışan container’ları görüntülemek istediğimizde bu isimlerle karşılaşabiliyoruz. Mesela birkaç container açıp bakalım:

Ve container isimlerini inceleyelim:

Docker tarafından üretilen container isimleri

İsimleri incelediğimizde yazının başında bahsettiğimiz sıfat_kişiismi formatını görebiliyoruz. Bu isimlendirmenin sebebi ise, kaynak kodunda (Golang ile yazılı) bulunan names-generator.go dosyasında saklı. İlgili dosyaya buradan ulaşabilirsiniz.

Dosyanın 9. satırında, isimlerin sol kısmında yer alan sıfatları görebiliriz.

Docker Container İsimlerinin Sol Kısmı

Container isimlerinin sağ kısmı ise 122. satırda right ismiyle tanımlanmış bir diziden geliyor.

Docker Container İsimlerinin Sağ Kısmı

Şimdi esas konuya geliyoruz. İsim neden boring_wozniak olamaz? Dosyanın 844. satırında bu sorunun cevabını buluyoruz:

“Steve Wozniak sıkıcı bir insan olmadığı için” kod rastgele seçimlerle bu ismi üretirse, başa dönüp tekrar isim seçmeye başlıyor. Daha enteresan olan ise, kodun bu ismi üretmeye devam ettikçe burada kısılıp kalacağı. Tabii ki kodun sürekli aynı çıktıyı vermesi pek olası olmadığı için bu bir problem oluşturmuyor.

Bu kadar engele rağmen, yine de bir şekilde bu ismi kullanmak isterseniz, container oluştururken --name parametresi ile isim vermeniz yeterli olacaktır.

Bu fikrin kim tarafından, ne zaman eklendiğine bakmak istersek, git in blame özelliği ile kısa bir tura çıkabiliriz. 24 Kasım 2013’te, Solomon Hykes’ın attığı bir commit içerisinde tüm bu sorularımızın cevabını buluyoruz.

Docker İpucu serisindeki önceki yazıları da inceleyebilirsiniz:

Leave a comment