Uygulama

Debian 11’e Podman Nasıl Kurulur

RedHat tarafından geliştirilen Podman, popüler Docker çalışma zamanı motorunun yerini alacak şekilde tasarlanmış ücretsiz ve açık kaynaklı bir daemonless konteyner motorudur. Tıpkı Docker gibi, kapsayıcı görüntüleri ve OCI kapsayıcıları (Open Container Initiative) kullanarak uygulamaları oluşturmayı, çalıştırmayı, dağıtmayı ve paylaşmayı kolaylaştırır. Podman, kullanıcı ve ağ ad alanlarını kullanır ve Docker ile karşılaştırıldığında, Podman daha yalıtılmış ve güvenli olarak kabul edilir. Docker’daki çoğu komut Podman’da çalışır. Docker komutlarını çalıştırmaya aşinaysanız, podman kullanmak çok kolay olacaktır.

Podman’i Debian 11’e yükleyin

Podman paketleri, kitaplıkları ve bağımlılıkları zaten resmi Debian depolarında barındırılmaktadır. Bu nedenle, APT paket yöneticisini kullanarak podman’i kolayca kurabilirsiniz.

İlk olarak, paket listelerini güncelleyin:

$ sudo apt update

Ardından, podman konteyner motorunu aşağıdaki gibi kurun:

$ sudo apt install podman

Devam etmeniz istendiğinde, ‘Y’ yazın ve ENTER’a basın.

Yüklü Podman sürümünü doğrulamak için şunu çalıştırın:

$ podman --version

Podman kapsayıcı motoru hakkında daha fazla ayrıntı toplamak için şu komutu çalıştırın:

$ sudo podman info

Podman kayıtlarını yapılandırın

Registry.conf kayıt dosyası, bir görüntüyü göndermek veya çekmek istediğinizde kullanılacak kapsayıcı kayıtlarını belirten bir yapılandırma dosyasıdır. Dosyanın tam yolu /etc/containers/registries.conf şeklindedir. Docker hub, Quay.io, RedHat ve çok daha fazlası dahil olmak üzere çeşitli kapsayıcı kayıtları vardır.

# sudo /etc/containers/registries.conf

Docker’da tek kapsayıcı kayıt defteri Docker Hub’dır. Podman, kullanıcılara herhangi bir kayıt defterinden görüntü arama ve çekme konusunda daha fazla özgürlük sunar. Aşağıdaki satırı ekleyerek kapsayıcı kayıtlarının listesini tanımlayabilirsiniz.

unqualified-search-registries = [ 'registry.access.redhat.com', 'registry.redhat.io', 'docker.io']

podman search veya podman pull komutunu çalıştırırken, podman bu kayıtlarla bu sırayla ilk olandan başlayarak iletişime geçecektir. Değişiklikleri kaydedin ve dosyadan çıkın.

İmaj arama

Kapsayıcı görüntülerini çekmeden önce, çeşitli kayıtlarda kullanılabilirliklerini araştırmak akıllıca olur.

Örneğin

$ sudo podman search nginx

Bir kayıt defterinde oturum açma

Görüntüleri çekmeye veya göndermeye başlamadan önce bir kayıt defterinde oturum açmanız gerekir. Aşağıdaki örnekte, aslında bana kayıt defterine erişim sağlayan Redhat hesabıma giriş yapıyorum.

$ sudo podman login registry.access.redhat.com

Kayıt defterinden çıkmak için şu komutu çalıştırın:

$ sudo podman logout registry.access.redhat.com

İmaj gönderme

Bir görüntüyü indirmek için sözdizimini kullanın:

$ sudo podman pull image_name

Örneğin, Nginx’in Resmi derleme görüntülerini indirmek için şu komutu çalıştırın:

$ sudo podman pull docker.io/library/nginx

Başka bir şey deneyelim. Resmi MongoDB imajını aşağıdaki gibi indirelim.

$ sudo podman pull docker.io/library/mongo

İmajları listeleme

Tüm görüntüleri listelemek için aşağıdaki komutu verin.

$ sudo podman images

Bir imajdan kapsayıcı oluşturma

Artık Debian sisteminde bulunan görüntülerimiz olduğuna göre, gösterilen sözdizimini kullanarak bir kapsayıcı başlatabiliriz. -d seçeneği kapsayıcıyı arka planda çalıştırır ve –name seçeneği kapsayıcı için özel bir ad belirtir.

$ sudo podman run -d  --name container_name  image

Örneğin, Nginx görüntüsünden webserv1 adlı arka planda bir kapsayıcı başlatmak için şu komutu çalıştırın:

$ sudo podman run  -d --name webserv1 docker.io/library/nginx

Aynı görüntüden birden fazla kapsayıcı başlatabilirsiniz. Aynı Nginx görüntüsünden webserv2 adlı başka bir kapsayıcı başlatalım.

$ sudo podman run -d --name webserv2  docker.io/library/nginx

Kapsayıcıları listeleme

Bu bölümde, kapsayıcılarla kullanabileceğiniz çeşitli komutlara bakacağız.

Şu anda çalışmakta olan kapsayıcıları kontrol etmek için şu komutu verin:

$ sudo podman ps

Çıktı, Kapsayıcı Kimliği, GÖRÜNTÜ adı, kapsayıcıyı çalıştıran komut, oluşturma tarihi ve durum gibi bilgileri sağlayan sütunlarda sunulur.

Çalıştırılanlar da dahil olmak üzere tüm kapsayıcıları listelemek için:

$ sudo podman ps -a

Bir kapsayıcıyı durdurma

Bir kapsayıcıyı durdurmak için sözdizimini kullanın

$ sudo podman stop CONTAINER_ID

VEYA

$ sudo podman stop container_name

Aşağıdaki örnekte, kapsayıcı kimliğini kullanarak listelenen ilk kapsayıcıyı durdurdum

$ sudo podman stop 9daeaabdfdfc

podman ps komutunu kullanarak kapsayıcının durdurulduğunu doğrulayabilirsiniz. Görüntüyü durdurduktan sonra, yalnızca 1 görüntünün çalıştığını açıkça görebiliyoruz.

podman ps -a komutu, az önce durdurulan kapsayıcıyı oluşturan her iki kapsayıcıyı da listeler.

$ sudo podman ps -a

Bir kapsayıcı başlatma

Bir kapsayıcı başlatmak için sözdizimini kullanın:

$ sudo podman start CONTAINER_ID

VEYA

$ sudo podman start container_name

Örneğin, webserv1’i başlatmak için şunu çalıştırın:

$ sudo podman start webserv1

Bir kapsayıcının kabuğuna erişin

Bir kapsayıcının kabuğuna erişim, en iyi şekilde bir İşletim sisteminin kapsayıcısıyla gösterilir.

Burada bir Ubuntu görüntüsü indireceğiz veya çekeceğiz:

$ sudo podman pull docker.io/library/ubuntu

Görüntüden bir kap oluşturacağız veya başlatacağız ve -it seçeneğini kullanarak kabuğa erişim sağlayacağız.

$ sudo podman run --name ubuntu -it docker.io/library/ubuntu  /bin/bash

-i, –interactive Bağlı olmasa bile STDIN’i açık tutun
-t, –tty Bir sözde-TTY tahsis edin. Varsayılan false

Bir kapsayıcının günlüklerini kontrol edin

Bir kapsayıcının günlüklerini kontrol etmek için sözdizimini kullanın:

$ sudo podman logs container_name

Örneğin:

$ sudo podman logs webserv2

Kapsayıcı istatistiklerini göster

Çalışan tüm kapsayıcıların istatistiklerini görüntülemek için şunu çalıştırın:

$ sudo podman stats

Bir kapsayıcıyı inceleyin

Bir kapsayıcıyla ilgili karmaşık ayrıntıları yazdırmak için inceleme seçeneğini kullanın:

$ sudo podman inspect webserv2

Bu, JSON biçiminde uzun bir çıktı yazdırır.

Çıktıyı filtrelemek için –format seçeneğini kullanın. Örneğin, webserv2 kapsayıcı çalışmasının IP adresini yazdırmak için

$ sudo podman inspect webserv2 --format '{{.NetworkSettings.IPAddress}}'

Daha sonra, örneğin HTTP başlıklarını almak için curl kullanarak IP için ek bilgiler gerçekleştirebilirsiniz.

$ curl -I ip-address

Bir kapsayıcıyı silme

Bir kapsayıcıyı tamamen kaldırmak veya silmek için, önce kapsayıcıyı çalışıyorsa durdurun ve son olarak kaldırın. Bu örnekte websev1 kapsayıcısını durdurduk ve kaldırdık.

$ sudo podman stop webserv1

Ardından durdurulan kabı çıkarın.

$ sudo podman rm webserv1

Bir imajı kaldırma

Bir görüntüyü kaldırmak için önce, görüntüden başlatılan tüm kapsayıcıları durdurduğunuzdan ve kaldırdığınızdan emin olun. Ardından, gösterildiği gibi rmi seçeneğini kullanın.

$ sudo podman rmi image_name

Örneğin, ubuntu Görüntüsünü kaldırmak için şu komutu çalıştırın:

$ sudo podman rmi  docker.io/library/ubuntu

Yazının orijinalini buradan okuyabilirsiniz.