Docker Komutlarına Hızlı Bir Giriş

Belli başlı docker komut’larını öğrenelim:

Docker for Windows kurulu bir windows 10 makinesinde komutları çalıştırıyorum.

Sistemde çalışan container’ları listeler:

docker ps

Çalışan çalışmayan tüm container’ları listeler:

docker ps -a

Varolan tüm container’ları silmek için:

docker rm $(docker ps -a -q)

Tüm container’ları durdurmak için:

docker stop $(docker ps -a -q)

Bilgisayarınızda kurulmuş olan imajları görmek için:

docker images

Varolan tüm imajları silmek için (-f force parametresi):

docker rmi -f $(docker images -q)
BusyBox, Üstünde Denemeler Yapabileceğimiz Az Kaynak Tüketen Bir İmajdır

BusyBox imajı üzerinde denemeler yapalım.

BusyBox imajından bir container oluşturup çalıştıralım. Docker run komutu, ilgili imajdan bir container oluşturur. İmaj local makinada zaten varsa, onu kullanarak oluşturur, eğer yoksa, docker hub üzerinden ilgili imajı indirir. Daha sonra da container’ı oluşturur.

Docker run komutunda imajı repository:tag formatında belirtiriz. Repository, imajın docker hub’da içinde bulunduğu repository’sini, tag ise sürüm ismini ifade ediyor.

docker run repository:tag command [arguments]

Bu kalıbı busybox için uygulayalım:

docker run busybox:1.26 echo "hello world"

Docker, localimizde busybox imajı olmadığı için docker hub’dan busybox’ın 1.26 tag’li sürümünü indirir.

Şimdi docker images komutunu çağıralım:

Gördüğünüz gibi imajımız lokal makinada oluşturulmuş durumdadır.

Farklı komutlar ile de çağırabiliriz: ls ile kök dizinindeki dosyaları listeliyoruz.

PS C:\onbirkod> docker run busybox:1.26 ls /
bin
dev
etc
home
proc
root
sys
tmp
usr
var

İnteraktif modda çalıştırmak için -i flagı ile çalıştırıyoruz. -t flagı ile de input ve output akışlarını bu containere bağlamış oluyoruz.

docker run -i -t busybox:1.6

Böylece container’ın içine girmiş oluyoruz. İstediğimiz komutları çağırabiliriz.

exit diyerek container’ın dışına tekrar çıkarız.

Container’ın arka planda çalışmaya devam etmesi için -d parametresi ile çalıştırabiliriz. Arka planda çalıştığını görmek için sleep komutunu çağıralım:

docker run -d busybox:1.26 sleep 1000

docker ps ile baktığımızda çalışan containerlar içerisinde busybox sleep komutunu görürüz:

container exit olduktan sonra, docker ps -a komutunda görünmeye devam eder. Tamamen silmek istiyorsak, –rm parametresi ile çağırmalıyız.

docker run --rm busybox:1.26 sleep 1

Containerlarımıza name parametresi ile isim verebiliriz. İsim vermezsek, docker bizim yerimize eğlenceli isimler verir.

Name parametresi ile isim verelim:

docker run --name mybusybox busybox:1.26 sleep 1

Container’lar hakkında daha detaylı bilgi almak için, docker inspect komutunu kullanırız. (docker inspect container_id):

docker inspect 50a9e9228850

Detach modda çalıştırdığımız container’a daha sonra tekrar girip, komut girmek için exec komutunu çalıştırırız: (-it parametresi kullanarak interaktif modda çalıştırınca, container’ın içinde kalıp, istediğimiz komutları girebiliriz):

docker exec -it testbusybox /bin/sh

İşimiz bitince exit komutu ile container’ın dışına tekrar çıkabiliriz.

Port Forwarding

docker içerisinde bir web uygulamanız varsa, dışarıya host makinasındaki bir port üzerinden kullanılabilmesi için –p parametresi ile port mapping yapabiliriz:

docker run -d -p 80:3000 mywebappimage

mywebappimage içerde 3000 portu kullanıyor. Fakat dışardan web uygulamasına bağlananlar 80 portu üzerinden uygulamaya erişebilirler anlamına geliyor.

 

Yorum bırakın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top