Köksüz Docker

Koksuz Docker



Docker, modern uygulama geliştirme ve dağıtımı için en güçlü ve etkili araçlardan biridir. Geliştiriciler olarak, uygulama ihtiyaçlarımıza uygun ortamları saniyeler içinde hızlı bir şekilde kurmak ve yapılandırmak için bunu yerel makinelerimizde kullanıyoruz.

Ancak Docker'da çalışırken Docker kaynaklarını oluşturup kullanmamız gereken ancak root erişimimizin olmadığı durumlar ile karşılaşabiliriz.

Veya belirli bir sistemdeki birden fazla kullanıcının, tüm kullanıcılara root izni vermeden Docker'a erişmesine ve kullanmasına izin vermek isteyebilirsiniz.







Bu eğitimde rootsuz Docker'ı, ne anlama geldiğini, nasıl çalıştığını ve root erişimi olmayan kullanıcıların Docker'ı ve ilgili hizmetlerini kullanmasına izin vermek için onu nasıl kullanabileceğimizi öğreneceğiz.



Köksüz Docker Nedir?

Varsayılan olarak, Docker'ı yükledikten sonra Docker arka plan programı ve araçları, ana sistemde kök ayrıcalıklarına ihtiyaç duyar. Bu, Docker'ın güvenliği ihlal edilirse önemli ölçüde güvenlik riskine neden olabilir ve bu da saldırgana root erişimi sağlayabilir.



Rootless Docker, Docker arka plan programını ve ilgili konteynerleri root izinleri olmadan kullanmamıza ve çalıştırmamıza olanak tanıyan bir özelliktir.





Nasıl çalışır

Köksüz bir docker ortamının teknik çalışmalarına dalmak zor olsa da, aşağıda rootsuz bir docker'ın ne yaptığını ve arka planda nasıl çalıştığını açıklayan üst düzey bir genel bakış bulunmaktadır.

Kullanıcı Ad Alanları – Köksüz bir docker'ın kullandığı önemli özelliklerden biri kullanıcı ad alanlarıdır. Linux çekirdeğinin bu temel özelliği, süreçlerin ad alanı içinde dışarıya göre farklı kullanıcı ve grup kimliklerine sahip olmasına olanak tanır. Bu, bir işlemin kendi ad alanı içinde kök kullanıcı olarak çalışabileceği, ancak bunun dışında normal bir kullanıcı olarak çalışabileceği anlamına gelir.



Ağ oluşturma – Köksüz Docker'ın bir sonraki özelliği ağ oluşturmadır. Varsayılan olarak normal docker arka plan programı iptables ve kök izinleri gerektiren köprüler gibi ağ yığınlarına dayanır.

Docker, köksüz bir docker'da kullanıcı modu TCP/IP yığını sağlayan slirp4netns gibi özelliklerden yararlanır. Bu, Docker'ın ana sistemde root izni olmadan ağa erişmesini sağlar.

Depolamak – Köksüz bir docker'ın bir sonraki önemli parçası depolama sürücüsüdür. Varsayılan olarak Docker, tahmin edebileceğiniz gibi kök izinleri gerektiren bir overlay2 depolama sürücüsü kullanır. Bunun yerine, köksüz bir liman işçisi örneği, sigorta kaplamaları sürücüsünü kullanır. Bu sürücü FUSE overlay fs'yi temel alır ve bu da onu kök izinleri olmadan bağlamamıza olanak tanır.

Yukarıdakiler, köksüz bir liman işçisi örneğinin temel bileşenlerinden bazılarıdır. Bunun köksüz bir liman işçisinin tüm işleyişini keşfetmediğini unutmayın. Daha fazla bilgi edinmek için belgeleri inceleyin.

Köksüz Docker – Gereksinimler

Teoriden hareket edelim ve köksüz bir Docker ortamının nasıl oluşturulacağını ve yapılandırılacağını öğrenelim.

Bu gönderiyi takip etmek için aşağıdakilere sahip olduğunuzdan emin olun:

  1. Kök izinlerine sahip Linux tabanlı bir sistem.
  2. Ağ Girişi.

Sistemi UIDMap ile Yapılandırma

Docker'ı kurup yapılandırmadan önce sistemi uidmap yardımcı programıyla kurup yapılandırmamız gerekiyor.

UIDMap, bir Linux sistemindeki süreçlerin kullanıcı ad alanlarının içeriğindeki UID ve GUI eşlemelerini yönetmemize olanak tanır. Köksüz Docker'ın kullanıcı ad alanlarından yararlandığından bahsettiğimizi hatırlıyor musunuz? Bu araç, UID ve GID eşlemelerini ve bunlara karşılık gelen ad alanlarını belirtmemize olanak tanır.

Sistem paketlerini aşağıdaki gibi yenileyerek başlayın:

$ sudo apt-get update

Ardından uidmap yardımcı programını gösterildiği gibi yükleyin:

$ sudo apt-get kurulumu kullanıcı haritası -Ve

Rootsuz Docker'ın Kurulumu

Bir sonraki adım köksüz Docker'ı işleyip kurmaktır. Bunu aşağıda özetlenen basit adımları izleyerek yapabiliriz:

Aşağıda gösterilen bağlantıdan rootless docker yükleyici komut dosyasını indirerek başlayın:

https://get.docker.com/rootless

cURL veya WGET'i kullanabilirsiniz.

$ kıvırmak -sSL https: // get.docker.com / köksüz | ş

Yukarıdaki komutu root kullanıcı olarak çalıştıramayacağınızı unutmayın.

Kurulum tamamlandıktan sonra .bashrc dosyanızı favori metin düzenleyicinizi kullanarak düzenleyin:

$ nano .bashrc

Daha sonra bashrc yapılandırma dosyasına aşağıdaki girişleri ekleyin:

ihracat XDG_RUNTIME_DIR = / Ev / ubuntu / .liman işçisi / koşmak

ihracat YOL = / Ev / ubuntu / çöp Kutusu: $PATH

ihracat DOCKER_HOST =unix: /// Ev / ubuntu / .liman işçisi / koşmak / liman işçisi.sock

Kullanıcıyı 'ubuntu'dan Docker'ı yüklemek istediğiniz kullanıcıya değiştirdiğinizden emin olun. Betik çıktısı size .bashrc dosyasına eklenecek içeriği verecektir.

Değişiklikleri kaydedin ve düzenleyiciyi kapatın.

Bir sonraki adımda rootless Docker daemonunu başlatmamız gerekiyor. Bunu aşağıdaki komutta gösterildiği gibi systemctl kullanarak yapabiliriz:

sistemctl --ubuntu liman işçisini başlat

Başladıktan sonra Docker kapsayıcılarını başlatmak ve yapılandırmak için Docker komutlarını kullanabilirsiniz.

Çözüm

Bu eğitimimizde rootless Docker'ın işlevselliğini, nasıl çalıştığını ve onu bir Linux sisteminde nasıl yapılandırabileceğimizi öğrendik. Daha fazla bilgi edinmek için rootless docker belgelerine göz atmaktan çekinmeyin.