Docker , kapsayıcıların oluşturulmasını kolaylaştıran açık kaynaklı bir yazılımdır ve kapsayıcı tabanlı uygulamalar. Başlangıçta Linux için geliştirilen Docker, artık Windows ve Macos’ta da çalışıyor. Docker’ın nasıl çalıştığını anlamak için kapsayıcılı uygulamalar oluşturmak için kullanılan bileşenleri göz önünde bulundurmanız gerekir.
Yönetilen DevOps
Dockerfile
Her Docker kapsayıcısı bir Dockerfile ile başlar – bu, Docker görüntüsünün nasıl oluşturulacağına ilişkin talimatları içeren bir metin dosyasıdır. Dockerfile, kapsayıcının altında yatan işletim sisteminin yanı sıra, başlatıldıktan sonra kapsayıcının dillerini, ortam değişkenlerini, dosya konumlarını, ağ bağlantı noktalarını ve diğer gerekli bileşenlerini ve eylemlerini tanımlar.
Docker image
Dockerfile yapılandırıldıktan sonra, buna dayalı bir görüntü oluşturmak için docker build yardımcı programı kullanılır. Dockerfile, programa görüntünün nasıl oluşturulacağını söyleyen bir dizi talimat olsa da, Docker ımage, kapsayıcıda çalışan yazılım bileşenlerinin özelliklerini içeren taşınabilir bir dosyadır. Dockerfile genellikle ağ depolarından bazı programları indirmek için talimatlar içerdiğinden, güncel sürümleri açıkça belirtmeniz gerekir, aksi takdirde Dockerfile uyumsuz görüntüler oluşturabilir. Görüntü oluşturulduktan sonra değiştirilemez (yalnızca yeni bir katman ekleyemezsiniz).
Docker run
Docker run, görüntüyü arayan ve kapsayıcıyı buna göre çalıştıran bir komuttur. Her kap bir görüntüye dayanmaktadır. Konteynerler geçici kullanım içindir, ancak durdurulabilir ve yeniden başlatılabilir, bu da konteyneri durdurulduğu duruma getirecektir. Ayrıca, aynı görüntünün birden çok kapsayıcısı aynı anda yürütülebilir (her kapsayıcının benzersiz bir adı olduğu varsayılarak).
Docker Hub
Konteynerler oluşturmak kolay olsa da, her görüntüyü sıfırdan yapmak gerekli değildir. Docker Hub, kapların paylaşılması ve yönetimi için bir SaaS deposudur ve projelerin ve satıcıların resmi açık kaynaklı Docker görüntülerinin yanı sıra resmi olmayan görüntülerin bulunabileceği yerdir. Yararlı bir kod içeren kapsayıcı görüntüleri yükleyebilir veya Hub’a kendinizinkini yükleyerek bunları herkese açık veya özel hale getirebilirsiniz. Yerel bir Docker kayıt defteri de oluşturabilirsiniz.
Docker Engine
Docker Engine, kapsayıcıları oluşturan ve çalıştıran temel istemci-sunucu teknolojisi olan Docker’ın çekirdeğidir. Genel olarak, birisi “Docker” dediğinde ve projeleri hakkında konuşmadığında, Docker Engine’e atıfta bulunur. Docker Engine’in iki farklı sürümü vardır: Docker Engine Enterprise (tescilli) ve Docker Engine Community (halka açık).