Docker popüler bir konteynerleştirme yazılımıdır. Konteynerler, bir uygulamanın farklı işletim sistemleri ve bilgisayar ortamlarında hızlı ve güvenilir bir şekilde çalıştırılabilmesi için kodu ve tüm bağımlılıklarını paketleyen standart bir yazılım birimidir.
Teknik anlamda konteyner, diğer süreçlerden izole edilmiş ve bilgisayar kaynaklarına erişimi olan çalışan bir süreçtir. Şimdi, Debian 11'de Docker'ı kurmaya ve ilk uygulamayı çalıştırmaya bakalım.
Standart Debian depolarını veya resmi Docker deposunu kullanarak kurulum yapmanın iki yolu vardır. Debian depoları en son sürümü içermemektedir, bu nedenle resmi Docker deposundan yüklemeyi düşüneceğiz.
Depoyu eklemeden önce, komutu çalıştırarak paket listesini güncellemeniz gerekir:
$ sudo apt update
Ayrıca uzak depolarla çalışmak için gerekli olan ek paketleri de yükleyin. Bu paketleri yüklemek için şu komutu çalıştırın:
$ sudo apt -y install ca-certificates curl gnupg lsb-release
Ardından, depodan PGP anahtarını indirin ve ekleyin. Bunu yapmak için şu komutu çalıştırın:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Depoyu eklemek için komutu çalıştırmanız gerekir:
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Paketi yüklemek için öncelikle paket listelerini güncellemeniz gerekir, böylece sistemde yeni bir depo görünür. Bunu yapmak için komutu çalıştırmanız yeterlidir:
$ sudo apt update
Son olarak, ek paketleri yükleyebilirsiniz. Kurulum şu komut kullanılarak yapılır:
$ sudo apt -y install docker-ce docker-ce-cli containerd.io
docker-ce
paket adındaki ce
kelimesi topluluk
anlamına gelir, bu da ücretsiz sürümün (topluluk sürümü olarak da bilinir) yükleneceği anlamına gelir. Artık docker debian'ı nasıl kuracağınızı biliyorsunuz.
Kurulumdan sonra varsayılan olarak kapalı olacaktır. Programı başlatmak için komutu çalıştırmanız gerekir:
$ sudo systemctl start docker
İşletim sistemiyle birlikte çalışabilmesi için komut kullanılarak otomatik yükleyiciye eklenmelidir:
$ sudo systemctl enable docker
Varsayılan olarak, yalnızca root kullanıcısı terminaldeki komutlarını kullanabilir ve çalıştırabilir. Normal bir kullanıcıdan herhangi bir komut çalıştırırsanız, terminal aşağıdaki hatayı görüntüleyecektir:
unix:///var/run/docker.sock adresindeki Docker daemon soketine bağlanmaya çalışırken izin reddedildi: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied
Komutu normal bir kullanıcı olarak ve sudo
komutunu kullanmadan çalıştırmak için kullanıcıyı docker
grubuna eklemeniz gerekir. Docker
grubu kurulum sırasında otomatik olarak oluşturulur. Ancak, herhangi bir nedenle otomatik olarak oluşturulmazsa, aşağıdaki komutu çalıştırarak manuel olarak oluşturulmalıdır:
$ sudo groupadd docker
Ardından, mevcut kullanıcıyı docker grubuna eklemek için çalıştırın:
$ sudo usermod -aG docker $USER
$USER
değişkeni, adına oturum başlatılan mevcut kullanıcının docker
grubuna ekleneceği anlamına gelir. Bu değişken tüm modern Linux dağıtımlarında mevcuttur. Ayrıca docker grubunun root kullanıcısına eşdeğer ayrıcalıklar verdiğini de belirtmek gerekir.
Bir kullanıcı ekledikten sonra, sistemde yeniden oturum açmak gerekir ve ancak o zaman test için herhangi bir Docker
komutunu çalıştırabilirsiniz. Örnek olarak, çalışan konteynerlerin bir listesini görüntüleyen docker ps
komutu çalıştırıldı:
$ docker ps
Yukarıdaki ekran görüntüsünde de görebileceğiniz gibi hatasız ve normal bir kullanıcı adına çalıştırıldı.
Docker'ı tam olarak test etmek için, doğrulama amacıyla hello-world
'den bir test görüntüsü indirebilirsiniz. Bunu yapmak için çalıştırmanız gerekir:
$ docker run hello-world
docker run
komutu, Docker'ın varsayılan olarak kullanılan resmi yazılım görüntüsü depolama kaydı olan docker hub
çevrimiçi deposundan yazılım görüntüsünü indirecek ve otomatik olarak çalıştıracaktır. Örnek, görüntünün başarıyla indirildiği ve çalıştırıldığı anlamına gelen Hello from Docker!
ifadesini verir.