‫Brandon ilk sırada.
‫Sıradaki soru kullanıcıya karşı dava açmak.
‫Kapsayıcılarda kök olmayan kullanıcıları kullanmayı ve dosya izinlerini veya Hossain'de tutmayı nasıl tercih
‫edersiniz?
‫Docker'daki izinler için mevcut en iyi uygulama nedir?
‫Bir konteynerde çalıştırdığınız dosyalarla Docker'ın kendisinin çok sinir bozucu olabileceğini
‫söylemek doğru olmaz, özellikle bind mounts kullanıyorsanız, bind mounts ana bilgisayar dosyalarının izinlerini konteynerde çalışan
‫şeylerle birleştirir ve bu genellikle saçınızı çekmenize ve biraz çıldırmanıza neden olabilir ve en zor projelerimden
‫bazıları, farklı ana bilgisayarlarda aynı dosyalara doğru izinlerle erişen birden fazla konteyner için çoklu sunucu paylaşımlı
‫dosya depolamaya ihtiyaç duyduğumuzda ve ayrıca yönetici olmayan kullanıcılarla en az ayrıcalık
‫kullanarak root kullanıcıları değil.
‫Yani bunlar gerçekten zor olabilir.
‫Ben olsam kullanıcıya karşı git derdim.
‫Dolayısıyla bana kullanıcı Brandon'ı sorduğunuzda DR imaj oluşturma sürecinden bahsettiğinizi varsayıyorum
‫çünkü kullanıcıların başvurduğu yer burası.
‫Ve Sue'nun bir köpek ya da imaj inşa ederken yaptığından daha iyi çalışma eğilimindedir.
‫En azından benim anladığım kadarıyla go Sue'nun Docker imajlarının içinde inşa için neden sıklıkla kullanıldığını
‫anlıyorum ve aslında nedenini bilmiyorum, muhtemelen yıllar önce bir noktada öğrendim ve sonra çabucak
‫unuttum.
‫Sanırım sorunuzun asıl bahsettiği şey imaj oluştururken ve bir çalıştırma komutunun
‫içindeyseniz ve bu çalıştırma komutunun belirli bir bölümündeki izinleri değiştirmeniz gerekiyorsa Docker dosya satırlarını kullanmak için en iyi uygulamanın kullanıcı olduğunu
‫söyleyebilirim ve bana mantıklı gelen yer burasıdır çünkü belki root kullanıcısı
‫olarak bir şeyler yapmanız gerekebilir, ancak her zaman bu çalıştırma komutunun içinde değil.
‫Belki de o zaman diğer şeyleri doğru yapmayı seçiyorsunuzdur.
‫Bu nedenle, izinlerle ilgili olarak insanların başına gelen şeyin büyük ölçüde görüntüdeki dosyalar değil, çalışma
‫zamanı sırasındaki dosyalar olduğunu düşünüyorum.
‫Konteyneriniz başladığında, diyelim ki bir node uygulamanız var ve bu node uygulaması kullanıcı
‫node'u olarak çalışıyor ve bir kullanıcı yükleme dizinine sahip ve daha sonra bu dosyalar ana bilgisayarda saklanıyor ve
‫bu nedenle kullanıcı node'u olarak saklanacaklar ve çalışan node'lar bunu çalıştırıyor ve sonra başka bir işleminiz var, belki farklı bir konteyner
‫ve paylaşılan bir birim veya bir şey veya bir satın alma miktarı kullanıyor ve aynı kullanıcı olarak
‫çalışmıyor ve bu dosyalara doğru okuma hakkına erişmesi gerekiyor ve izinlerle ilgili bu sorunlarla
‫karşılaşıyorsunuz.
‫Bu nedenle, günün sonunda bu sorunları modda göstererek çözemezseniz, o zaman olmadığını söyleyebilirim.
‫Başka bir deyişle, docker dosyasının içinde, örneğin bir doktor dosyası yerine
‫bir kopyalama komutu yapıyorsanız, artık dosyaları kopyalarken ve bu dosyalara izin verilen doğru kullanıcılarla
‫kopyalandıklarında bir komut yapamayacağınız şekilde gösterilebilir.
‫Bu aslında bir özellik olsa da henüz sanmıyorum ve bunun çoğunun eklendiğine
‫bakın.
‫Ducker.
‫Bu yüzden resmi belgelere doğru yakınlaşıyoruz ve evet seçeneğine gidersem.
‫Yani ışıltılı araması yaparsam hiçbir şey göremiyorum.
‫Ancak gösterilene gidersem, reklamı veya kopyayı kullanırsanız bunları doğru izinlerle nereye kopyalayabileceğinizi
‫görebilirsiniz.
‫Bu, bir ya da iki yıl önce gerçekleşen ve bize çok fazla alan kazandıran büyük bir şeydir,
‫çünkü dosyaların izinlerini değiştirmek zorunda kalmayız, birinci adım ikinci adım, çalışma zamanında dizinlerin
‫izinlerini değiştirmeniz gerekiyorsa, örneğin belirli izinlere ayarlanmış bir birime sahip olmanız gerekir.
‫Giriş noktası betiği bunun içindir.
‫Örneğin, Docker Hub'a geri dönersek ve ben devam dosyama girersem ve devam Docker dosyalarımdan birine giderseniz, muhtemelen
‫özellikle veritabanları gibi şeylerde bir giriş noktası komut dosyası olduğunu ve her seferinde başlayabilecek
‫bir giriş noktası komut dosyası olduğunu göreceksiniz. Bir konteyner başlatılır
‫ve genellikle bu giriş noktaları komut dosyalarında, bu dizindeki her şeyi göstermeniz ve değiştirmeniz
‫veya bir artı sağ global veya her zaman yapılacak en güvenli şey olmayan bir şey yapmanız gerektiği gibi
‫şeyler görürsünüz, ancak anında izinleri değiştirmeniz gerekiyorsa, bunu komut dosyasının
‫içinde yaparsınız.
‫Şimdi elbette bu betikteki sorun, sanırım docker dosyasında ayarladığınız kullanıcı olarak çalışıyor olması, bu da
‫başka bir sorun haline geliyor çünkü dosyalar üzerindeki izinleri node kullanıcısı tarafından okunabilir
‫ve okunabilir hale getirmek için değiştirmeniz gerekiyorsa, ancak betik bir node kullanıcısı olarak çalışıyorsa,
‫o zaman sorun yaşarsınız çünkü rotaya gidemezsiniz.
‫Esasen o noktada.
‫Bu nedenle, bunun için kolay ya da en iyi çözümün olmadığını söyleyebilirim, ancak izinler, muhtemelen
‫izinlerin ele alınmasının çeşitli yolları üzerine birkaç saatlik bir eğitim oturumu yazmak için bütün bir kurs bölümü yazabileceğiniz
‫bir şeydir.
‫Orada küçük bir haber var.
‫Söyleyeceğim son şey, sorunuzun üzerine gittiğimin farkındayım ancak
‫Linux'ta dosya izinlerinin sadece sayılardan ibaret olduğu konusu çok sık gündeme gelen bir konu.
‫Aslında bu bana sanırım kullanıcı ad alanı sorunlarını uygulayan
‫Phil Estes tarafından verilen bir ipucu.
‫Docker'ın içinde varsayılan olarak etkinleştirilmemiş olan kullanıcı ad alanı özelliği için üzgünüm.
‫Ancak tüm konteynerlerinizin root olmayan olarak çalışmasını istiyorsanız bunu etkinleştirebilirsiniz.
‫Bu özelliğin eklenmesine yardımcı olanlardan biriydi ve bir gün konuşuyorduk ve kullanıcı I'yi bildiğinize
‫dikkat çekti. D. ve I grubu. D. sadece fikirdir, bu sayıyı istediğiniz gibi ayarlayabilirsiniz.
‫Onlar sadece sayı.
‫Örneğin ana bilgisayardaki dosyaların konteynerdekilerle eşleşmesi gerekiyorsa, her şeyi
‫I ile ayarlarsanız. D. numarasına sahipse, kullanıcı adları bu noktada gerçekten önemsizdir.
‫Onlar gerçekten ben. D. bu izinlerle eşleşip eşleşmediğine bakacaktır.
‫Bir proje üzerinde çalışıyordum ve dosyaları birden fazla konteyner arasında paylaşmamız gerekiyordu ancak hepsi farklı
‫kullanıcılar olarak çalışıyordu ve izinlerin eşleştiğinden emin olmamız gerekiyordu.
‫Bu dosyaların doğru numaraları kullandığından emin olmak için elle kontrol ettik. D. ve sonra her şey çalışmaya başladı
‫çünkü örneğin ana bilgisayarda I ile eşleşen bir kullanıcı oluşturmamış olmamız gerçekten
‫önemli değildi. D. konteynerin içinde.
‫Biz sadece I'dan emin olduk. D. Numaralar eşleşti, bu da küçük bir ipucu.
‫Bunu çözmek ve nasıl çalıştığını anlamak biraz zamanımı aldı ama gerçekten de
‫günün sonunda okuma sayılarının, hakların ve izinlerin komutu çalıştıran kullanıcı ile eşleştiğinden
‫emin olmak için hiçbir karşılaştırma yapmıyor.
‫Güzel soru.
‫Bu konuyu gündeme getirmenize sevindim çünkü bu son zamanlarda burada tartıştığımız bir konu
‫değil ve bu konu hakkında daha fazla konuşmalıyız.