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.