Docker Container Login as Root

How to SSH into a Running Docker Container and Run Commands

Docker, paketleme uygulamaları ve bunların gerekli tüm bağımlılıklarını hafif kaplara dönüştürme ilkesiyle çalışır. Docker konteynerlar'da komut çalışırken veya oturum açarken root kullanıcı ile çalışmayabilir. Ancak bir servisi yeniden başlattığımızda veya fark durumlarda, root kullanıcısına ihtiyacımız olur. Şimdi, bazı ekstra ayrıcalıklar elde etmek için bir kök kullanıcı kullanarak Docker kapsayıcısına erişmeyi öğreneceğiz.

Konteyner'a Root Kullanıcısı ile Bağlanmak

İlk olarak terminal erişimi sağlayacağımız, konteyner id veya adını öğrenelim.

sudo docker ps 

Konteyner adının openspeedtest1 olduğunu öğrendik. Şimdi Docker exec komutunu kullanarak çalışan bir kapsayıcıda, terminal erişimi sağlayalım.

sudo docker exec -it openspeedtest1 sh 

Şimdi, konteyner üzerinde paket listesini güncellemeye çalışırsak, aşağıdaki hata mesajını alırsınız.

apk update 

Bu durumda, root olmayan kullanıcı kilit dosyasına erişemez. Genel olarak, bu kullanıcının kapsayıcıya sınırlı erişimi olacaktır. Şimdi kapsayıcıdan çıkalım.

exit

Docker kapsayıcısının içindeki root kullanıcısını çalıştırmak için -u veya --user seçeneğini kullanacağız. Şimdi root kullanıcısını kullanarak yeniden giriş yapalım.

docker exec -it -u root openspeedtest1 

root kullanıcısını yazmak yerine kullanıcı id'si de kullanılabilir. 

Bu sefer kapsayıcıya root kullanıcı olarak girdik. Kapsayıcı üzerinde artık paket listesi veya herhangi bir işlemi gerçekleştirebiliriz.

apk update 

Yukarıdaki çıktıdan güncelleme komutunun başarılı olduğu ve kök kullanıcının kilit dosyasına erişimi olduğu görülebilir. Kök kullanıcının tam yetkileri ile herhangi bir dosyayı sorunsuz bir şekilde değiştirebiliriz.

Blog'a Dön