İyi haber: Yeni liman işçisi (sürüm 19.03 (şu anda deneysel)), bir kök kullanıcısı kullanarak oluşabilecek sorunları göz ardı ederek köksüz çalışabilecektir. Daha fazla izin, kök ve istemediğinizde makinenizi açabilecek herhangi bir şeyle uğraşmanıza gerek yok.
Bununla ilgili video [DockerCon 2019] Rootless moduyla Sertleştirme Docker cini
Rootless Docker moduna birkaç uyarı
Docker mühendisleri, köksüz modun Docker motor özelliklerinin tamamının yerine geçemeyeceğini söylüyor. Köksüz moda yönelik bazı sınırlamalar şunlardır:
- Kaynak kontrollerini, genel güvenlik profillerini, kontrol noktası / geri yüklemeyi, bindirme ağlarını vb. gruplandırır, köksüz modda çalışmaz.
- Limanların konteynerlerden açığa çıkarılması halihazırda manuel socat yardımcı işlemi gerektirir.
- Yalnızca Ubuntu tabanlı dağıtımlar, köksüz modda dosya paylaşım sistemlerini destekler.
- Rootless modu şu anda yalnızca alışık olduğunuz kadar stabil olamayacak olan gecelik yapılar için sağlanmıştır.
Liman işçisi 19.3'ten itibaren bu eski (ve gerekenden daha tehlikeli):
Liman işçisi kılavuzu bu konuda şöyle demektedir:
Root dışı erişim verilmesi
Docker arka plan programı her zaman kök kullanıcı olarak çalışır ve Docker sürüm 0.5.2'den beri docker arka plan programı, bir TCP bağlantı noktası yerine bir Unix soketine bağlanır. Varsayılan olarak, Unix soketinin kullanıcı köküne ait olması ve varsayılan olarak sudo ile erişebilirsiniz.
Siz (veya Docker yükleyiciniz) docker adlı bir Unix grubu oluşturup kullanıcı eklerseniz, sürüm 0.5.3'ten itibaren, docker arka plan programı, arka plan başladığında Unix yuvasının docker grubu tarafından okunup / yazılabilir olmasını sağlar. . Docker arka plan programı her zaman kök kullanıcı olarak çalışmalıdır, ancak docker istemcisini docker grubundaki bir kullanıcı olarak çalıştırırsanız, tüm istemci komutlarına sudo eklemeniz gerekmez. 0.9.0'dan itibaren, docker dışındaki bir grubun -G seçeneğiyle Unix soketine sahip olması gerektiğini belirleyebilirsiniz.
Uyarı: Liman işçisi grubu (veya -G ile belirtilen grup) kök eşdeğeridir; bkz Docker Daemon Saldırı Yüzey ayrıntıları ve bu blog yayınını biz kök olmayan kullanıcılar CentOS, Fedora veya RHEL içinde Docker çalıştırmak izin vermeyin Neden (teşekkürler michael-n).
GitHub'daki deneysel köksüz modun son sürümünde , mühendisler köksüz moddan bahseden, dockerd'ın user_namespaces (7), mount_namespaces (7), network_namespaces (7) kullanarak ayrıcalıklı olmayan bir kullanıcı olarak çalıştırılmasını sağlar.
Kullanıcıların, dockerd yerine dockerd-rootless.sh komutunu çalıştırmaları gerekir.
$ dockerd-rootless.sh --experimental
Rootless modu deneysel olduğundan, kullanıcıların her zaman dockerd-rootless.sh dosyasını deneysel olarak çalıştırmaları gerekir.
Okumak önemli: Linux için kurulum sonrası adımlar (ayrıca Docker Daemon Attack Surface ayrıntılarına da bağlanır ).
Docker'ı root olmayan bir kullanıcı olarak yönetin
Liman işçisi, bir TCP portu yerine bir Unix soketine bağlanır. Varsayılan olarak, Unix soketi kullanıcı köküne aittir ve diğer kullanıcılar yalnızca sudo kullanarak erişebilir. Liman işçisi, her zaman kök kullanıcı olarak çalışır.
Docker komutunu kullanırken sudo kullanmak istemiyorsanız, docker adlı bir Unix grubu oluşturun ve buna kullanıcılar ekleyin. Liman işçisi arka plan başladığında, Unix soket sahipliğini liman işçisi grubu tarafından okunabilir / yazılabilir kılar.
Henüz mevcut değilse, liman grubunu ekleyin:
sudo groupadd docker
Bağlantılı kullanıcıyı "$ USER" kullanıcı grubuna ekleyin. Mevcut kullanıcınızı kullanmak istemiyorsanız, tercih ettiğiniz kullanıcı ile eşleşecek şekilde kullanıcı adını değiştirin:
sudo gpasswd -a $USER docker
Gruptaki newgrp docker
değişiklikleri etkinleştirmek için, a veya oturum açın / oturum açın.
Kullanabilirsiniz
docker run hello-world
liman işçisi sudo olmadan çalışıp çalışmadığını kontrol etmek için.