Bu rehberde, Ubuntu Server 20.04 LTS üzerinde yeni bir kullanıcıya Docker rootless kurulumunun nasıl yapılacağını adım adım anlatacağım. Rootless mod, Docker’ı root yetkisi olmadan çalıştırmanızı sağlar ve bu da güvenliği artırır.
1. Adım: Yeni Kullanıcı Oluşturma
Öncelikle, dockeruser
adında yeni bir kullanıcı ekleyelim.
sudo adduser dockeruser
sudo passwd dockeruser
sudo usermod -aG sudo dockeruser
2. Adım: SSH ile Bağlanma
Docker rootless kurulumunu yaparken yeni kullanıcıyla SSH üzerinden bağlanmamız gerekiyor. Aşağıdaki komutu kullanarak bağlanabilirsiniz:
ssh dockeruser@localhost
# Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
3. Adım: Docker Rootless Kurulumu
SSH ile bağlandıktan sonra, Docker rootless kurulumuna başlayabiliriz.
sudo apt-get install -y uidmap
curl -fsSL https://get.docker.com/rootless | sh
Kurulum tamamlandığında, PATH ve DOCKER_HOST bilgilerini .bashrc
dosyasına eklemeniz gerekecektir.
# .bashrc dosyasına eklenmesi gereken satırlar:
export PATH=/usr/bin:$PATH
export DOCKER_HOST=unix:///run/user/1000/docker.sock
Bu bilgileri .bashrc
dosyasının en altına ekleyelim:
nano ~/.bashrc
4. Adım: Docker’ı Başlatma ve Sistem Başlangıcında Çalıştırma
Docker’ı başlatın ve sistem yeniden başladığında çalışmasını sağlayın:
systemctl --user start docker
systemctl --user enable docker
sudo loginctl enable-linger dockeruser
5. Adım: Kullanıcı ID’sini Öğrenme ve Servis API’sini Düzenleme
Öncelikle kullanıcı ID’nizi öğrenin:
id
# uid:<burada yazan değer sizin user ID'niz>
Servis API dosyasını açın:
nano ~/.config/systemd/user/default.target.wants/docker.service
Dosyaya aşağıdaki satırları ekleyin (UID’nizi kendi değerinize göre güncelleyin):
[Unit]
Description=Docker Application Container Engine (Rootless)
Documentation=https://docs.docker.com/engine/security/rootless/
[Service]
Environment=DOCKERD_ROOTLESS_ROOTLESSKIT_FLAGS="-p 0.0.0.0:2376:2376/tcp"
ExecStart=/home/dockeruser/bin/dockerd-rootless.sh -H tcp://0.0.0.0:2376 -H unix:///run/user/1000/docker.sock
6. Adım: slirp4netns Kurulumu
Docker rootless modunda dışardan bağlanan kişinin gerçek IP’sini göstermek için slirp4netns
kuralım:
sudo apt-get install slirp4netns
Servis API dosyasını tekrar açın ve [Service]
alanına aşağıdaki satırı ekleyin:
Environment="DOCKERD_ROOTLESS_ROOTLESSKIT_PORT_DRIVER=slirp4netns"
7. Adım: Override.conf Dosyasını Oluşturma
~/.config/systemd/user
altına docker.service.d
klasörü ve içerisine override.conf
dosyasını oluşturalım:
cd ~/.config/systemd/user
mkdir docker.service.d
cd docker.service.d
touch override.conf
8. Adım: Servisi Yeniden Yükleme ve Docker’ı Yeniden Başlatma
Servisi yeniden yükleyin ve Docker’ı yeniden başlatın:
systemctl --user daemon-reload
systemctl --user restart docker
9. Adım: Kullanıcının Sudo Yetkisini Kaldırma
Kullanıcının sudo yetkisini alalım:
sudo deluser dockeruser sudo
10. Adım: Sunucuyu Yeniden Başlatma
Sunucuyu yeniden başlatın:
sudo reboot
Artık Docker rootless modunda kullanıma hazır. Bu rehberi takip ederek güvenli ve root yetkisi olmadan Docker’ı kullanabilirsiniz. Sorularınız veya geri bildirimleriniz için yorum bırakabilirsiniz. İyi çalışmalar!