Docker, yazılım uygulamalarını geliştirmek, test etmek ve dağıtmak için kullanılan açık kaynaklı bir platformdur. Docker, uygulama paketleme ve taşıma sürecini basitleştirir ve uygulamanın herhangi bir ortamda çalışmasını sağlar. Bu makalede, Docker komutlarını örneklerle inceleyeceğiz.
- Docker Yükleme
Docker’ı yüklemek, ilk adımdır. İşletim sisteminize uygun Docker sürümünü indirerek ve kurarak başlayabilirsiniz. Daha fazla bilgi için, resmi Docker belgelerine bakabilirsiniz.
- Docker Image (Görüntüleri)
Docker, uygulamaların paketlenmesi için görüntüler (images) kullanır. Görüntüler, bir dizi işletim sistemi dosyasından oluşan, uygulamanın çalıştırılması için gereken tüm bileşenleri içerir. Görüntüleri, Docker Hub gibi bir depoda saklayabilir veya kendi görüntülerinizi oluşturabilirsiniz.
Bir görüntüyü Docker Hub’dan indirmek için aşağıdaki Docker komutunu kullanabilirsiniz:
docker pull <image-name>
Örneğin, Ubuntu görüntüsünü indirmek için şu komut kullanılabilir:
docker pull ubuntu
Kendiniz bir görüntü oluşturmak istiyorsanız, Dockerfile adlı bir dosya oluşturmanız gerekir. Dockerfile, görüntüyü nasıl oluşturacağınızı belirten talimatları içerir. Örneğin, basit bir Dockerfile aşağıdaki gibidir:
FROM ubuntu:latest
RUN apt-get update && apt-get install -y nginx
CMD ["nginx", "-g", "daemon off;"]
Bu Dockerfile, en son Ubuntu görüntüsünü alır, Nginx web sunucusunu yükler ve sunucuyu başlatır.
Görüntüyü oluşturmak için aşağıdaki komutu kullanabilirsiniz:
docker build -t my-nginx .
Bu komut, mevcut dizindeki Dockerfile dosyasını kullanarak my-nginx adlı bir görüntü oluşturacaktır.
- Docker Konteynerleri
Docker konteynerleri, görüntülerin çalıştırılabilir durumudur. Bir konteyner, bir görüntünün bir örneğidir ve bir hizmeti çalıştırmak için kullanılabilir. Bir görüntüden bir konteyner oluşturmak için aşağıdaki Docker komutunu kullanabilirsiniz:
docker run <image-name>
Örneğin, Ubuntu görüntüsünden bir konteyner oluşturmak için şu komut kullanılabilir:
docker run ubuntu
Konteyneri arka planda çalıştırmak için -d seçeneğini kullanabilirsiniz:
docker run -d ubuntu
Ayrıca, bir konteynere isim vermek için –name seçeneğini kullanabilirsiniz:
docker run --name my-container ubuntu
Konteynerin bir bağlantı noktasını ana bilgisayarınızdaki bir bağlantı noktasına yönlendirmek için -p seçeneğini kullanabilirsiniz:
docker run -p 80:80 my-nginx
Bu, 80 numaralı bağlantı noktasının ana bilgisayarınızdaki 80 numaralı bağlantı noktasına yönlendirileceği anlamına gelir.
- Docker Networks (Ağları)
Docker ağları, konteynerler arasında iletişim kurmak için kullanılır. Varsayılan olarak, Docker, her konteyner için ayrı bir ağ oluşturur. Ancak, farklı konteynerleri aynı ağa ekleyerek, bu konteyner aynı ağa eklenen konteynerler, Docker DNS aracılığıyla birbirlerine erişebilirler. Varsayılan olarak, her konteynerin kendine özgü bir IP adresi vardır. Ancak, aynı ağa eklenen konteynerler, IP adresleri yerine birbirlerinin isimlerini kullanarak iletişim kurabilirler.
Bir Docker ağı oluşturmak için aşağıdaki komutu kullanabilirsiniz:
docker network create my-network
Ardından, bir konteyneri bu ağa eklemek için aşağıdaki komutu kullanabilirsiniz:
docker run --network=my-network my-nginx
- Docker Veri Saklama
Docker, veri saklamak için çeşitli yöntemler sunar. Bunlar arasında bağlı hacimler (bind mounts), Docker yönetilen hacimleri (managed volumes) ve Docker takip edilen hacimler (tracked volumes) bulunur.
Bind Volumeler:
Bağlı hacimler, ana bilgisayarınızdaki bir dizini konteyner içindeki bir dizine bağlamak için kullanılır. Bu, konteyner içindeki dosyaların ana bilgisayarınızdaki bir dizide saklanabileceği anlamına gelir. Bir konteynere bir bağlı hacim eklemek için aşağıdaki komutu kullanabilirsiniz:
docker run -v /host/directory:/container/directory my-image
Bu, /host/directory’deki dosyaların /container/directory’de depolanacağı anlamına gelir.
Docker Yönetilen Volume (Hacimler):
Docker yönetilen hacimler, Docker tarafından yönetilen ve depolanan hacimlerdir. Bu, konteynerler arasında verilerin taşınmasını kolaylaştırır ve verilerin yedeklenmesini ve kurtarılmasını sağlar. Bir Docker yönetilen hacmi oluşturmak için aşağıdaki komutu kullanabilirsiniz:
docker volume create my-volume
Docker Takip Edilen Volume (Hacimler):
Docker takip edilen hacimler, hacmi başka bir konteynere veya makineye taşıdığınızda otomatik olarak verileri kaydeden bir tür Docker yönetilen hacimidir. Bir Docker takip edilen hacmi oluşturmak için aşağıdaki komutu kullanabilirsiniz:
docker volume create --driver local \
--opt type=nfs \
--opt o=addr=192.168.1.100,rw \
my-nfs-volume
Bu, 192.168.1.100 adresindeki bir NFS sunucusuyla eşleşen my-nfs-volume adlı bir takip edilen hacim oluşturur.
- Docker Komutları
Docker, birçok komutla birlikte gelir. Aşağıda en sık kullanılan Docker komutlarından bazıları listelenmiştir:
- docker build: Bir Docker görüntüsü oluşturmak için kullanılır.
- docker run: Bir Docker konteyneri oluşturmak veya çalıştırmak için kullanılır.
- docker ps: Çalışan Docker konteynerlerinin listesini gösterir.
- docker images: Mevcut Docker görüntülerinin listesini gösterir.
- docker stop: Çalışan bir Docker konteynerini durdurmak için kullanılır.
- docker rm: Bir Docker konteynerini silmek için kullanılır.
- docker rmi: Bir Docker görüntüsünü silmek için kullanılır.
- docker network ls: Mevcut Docker ağlarının listesini gösterir.
- docker volume ls: Mevcut Docker hacimlerinin listesini gösterir.
7. Son
Docker, uygulama geliştirme ve dağıtım sürecini hızlandırmak için kullanışlı bir platformdur.
Bu makalede, Docker’ın temel kavramlarını ve en sık kullanılan komutlarını ele aldık. Docker, uygulama geliştirmeyi, test etmeyi ve dağıtmayı kolaylaştıran bir platformdur. Görüntülerin, konteynerlerin ve ağların kullanımı, uygulamanızı herhangi bir ortamda çalıştırmanızı sağlar.
Docker, birçok sayıda sektörde kullanılır. Örneğin, web geliştirme, veri bilimi, bulut bilişim, yapay zeka ve daha fazlasında kullanılır. Docker, uygulamaları hızlı ve verimli bir şekilde yönetmenizi sağlayarak verimliliği artırır ve aynı zamanda sistem kaynaklarından tasarruf sağlar.
Docker, açık kaynak kodlu bir teknolojidir ve dünya çapındaki topluluğun geliştirdiği birçok yardımcı program ve araçlar tarafından desteklenir. Bu nedenle, yeni başlayanlar bile Docker’ı kolayca kullanabilirler.
- Docker Önerilen Kaynaklar
Docker ile ilgili daha fazla bilgi edinmek istiyorsanız, aşağıdaki kaynakları inceleyebilirsiniz:
- Resmi Docker Belgesi: https://docs.docker.com/
- Docker Akademisi: https://training.docker.com/
- Docker Hub: https://hub.docker.com/
- Docker Topluluğu Forumları: https://forums.docker.com/
- Docker YouTube Kanalı: https://www.youtube.com/@DockerIo