Skip to content

Instantly share code, notes, and snippets.

@Kambaa
Last active February 22, 2024 20:20
Show Gist options
  • Save Kambaa/71b71b8888be19f969680a2f1f7ec594 to your computer and use it in GitHub Desktop.
Save Kambaa/71b71b8888be19f969680a2f1f7ec594 to your computer and use it in GitHub Desktop.
Docker'ı WSL2 ile çalışan Debian makinasına yüklemek

Docker'ı WSL2 ile çalışan Debian makinasına yüklemek

Docker desktop zaten yavaş olan kodlama yaptığım makinamı iyice yavaşlatınca, direk WSL'de çalışan linux'a docker'ı elle kurup kullanmayı tercih ettim. Aşağıdaki adımları her seferinde farklı sitelerden bulup ayarlamaktansa buraya yazmayı tercih ettim.

1.Docker'u yükleme:

Aşağıdaki komutları docker'sın resmi sitesinde yazan yerlerden aldım. Kısaca docker uygulama bilgilerini Debian yükleme aracı apt'nin güvenli bir şekilde alıp okumasını sağlayıp docker'ı ve docker compose'u yükletiyorum.

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2. WSL bağlantısı yaptığımda docker'ın otomatik çalışmasını sağlamak:

Varsayılan olarak açılmıyor, her bağlantığımda otomatik servisin ayağa kalkması için bu ayarı yapmak lazımmış. WSL Debian'da, alışık olduğum systemctl enable, sudo service... gibi komutların çalışmadığını okudum ve biraz da gördüm. Aşağıdaki adımlarla bağlandığım kullanıcıya docker ve docker servisi (dockerd) komutlarını sudo'suz çalıştırma ayarı yapıp, kullanıcı login olunca dockerd komutunun otomatik çalışmasını ayarlıyorum.

  • /etc/sudoers dosyasını sudo visudo ya da sudo nano /etc/sudoers ile açın
  • aşağıdaki metni en sona ekleyin(<KULLANICI_ADINIZ> kısmına WSL2'deki kullanıcı adınızı yazın).
    <KULLANICI_ADINIZ> ALL=(ALL) NOPASSWD: /usr/bin/dockerd
    
  • Sonrasında aşağaki komutları tek tek çalıştırarak, oturumunuzla otomatik başlaması gereken ayar komutlarını .bashrc dosyanıza ekletin.
    echo '# Start Docker daemon automatically when logging in if not running.' >> ~/.bashrc
    echo 'RUNNING=`ps aux | grep dockerd | grep -v grep`' >> ~/.bashrc
    echo 'if [ -z "$RUNNING" ]; then' >> ~/.bashrc
    echo '    sudo dockerd > /dev/null 2>&1 &' >> ~/.bashrc
    echo '    disown' >> ~/.bashrc
    echo 'fi' >> ~/.bashrc
    
  • Son olarak bağlı kullanıcızla her docker komutunda sudo girmemek adına aşağıdaki kodu çalıştırın:
    sudo usermod -a -G docker $USER
    

Linkler:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment