Windows Server 2016 Containers – Bölüm 2 – Windows Server Containers
Container makalemizin ilk bölümünde de aşağıdaki şekil üzerinde yapı hakkında bilgiler vermiştik.
Temel olarak bu bölümde yapacağımız adımları şu şekilde özetleyebiliriz:
· Container Host sunucusunu hazırlamak ve yapılandırmak
· Container Host sunucusu üzerinde temel (base) container imajları olan “Windows Server Core” ve “Windows Server Nano” hazırlamak.
· Oluşturulan base imajları kullanarak yeni container oluşturulması
· Container içerisine uygulama, rol ya da diğer bileşenlerin eklenmesi
· Container kapatıp, repository içerisine kaydedilmesi
· Container açarak üzerindeki uygulamanın canlı ortama alınması
· Docker ve PowerShell ile Container yönetimine yönelik faaliyetler
CONTAINER HOST SUNUCUSUNUN YAPILANDIRILMASI
Container özelliğinin (Windows Feature) kurulu olduğu ve üzerinde container nesnelerini barındıran fiziksel ya da sanal sunuculara “Container Host” adını verdiğimiz bahsetmiştik. Bu adımda bir Container Host sunucusunun nasıl yapılandırıldığını inceliyoruz. Container Host sunucumuzu kullanıma hazırlarken ve yapılandırırken aşağıdaki maddeleri gerçekleştiriyoruz:
· Container bileşeninin yüklenmesi
· Docker uygulamasının yüklenmesi ve yapılandırılması
· Baz(Base) Container İmajlarının Yüklenmesi
Container Bileşeninin Yüklenmesi
Öncelikle Container Host olacak sunucu üzerine aşağıdaki şekilde de görülen “Containers” bileşenini yüklüyoruz.
Bu kurulumu PowerShell cmdlet ile aşağıdaki şekilde de gerçekleştirebilirsiniz:
Container bileşeninin kurulumu sonrasında sunucumuzu yeniden başlatmamız gerekiyor. Aşağıdaki PowerShell cmdlet ile container host sunucusunu yeniden başlatıyoruz.
Sunucumuz yeniden açıldıktan sonra, sıradaki adımımız Docker bileşeninin Windows Server 2016 üzerine kurulumu olacaktır.
Docker Uygulamasının Yüklenmesi
Windows Server 2016’da container yapı taşları ile çalışmaya başlamak için Docker uygulamasına ihtiyacımız var. Docker uygulamasının kurulumu ile hem Docker Engine hem de Docker Client kurulmuş olacaktır. Öncelikle aşağıdaki PowerShell cmdlet ile Docker engine ve Docker client bir ZIP arşivi olarak indiriyoruz.
Daha sonra indirilen ZIP arşivini Program Files altına açıyoruz.
Docker dizinini sistem Environment Variables altındaki sistem yol tanımlarına ekliyoruz:
Bu adımdan sonra açık olan PowerShell oturumunu ya da komut satırını kapatıp, yeniden başlattığımızda bu eklediğimiz yol tanımının etkinleşmesini sağlamış olduk.
Docker uygulamasını bir Windows servisi olarak kaydetmek için de aşağıdaki komutu çalıştırıyoruz:
Kurulum sonrasında Docker servisini başlatıyoruz:
Baz(Base) Container İmajlarının Yüklenmesi
Container oluşturmaya başlamadan önce container imajlarına baz oluşturacak işletim sistemi imajlarının indirilmesi gerekir. Aşağıdaki adımları gerçekleştirerek hem WindowsServerCore hem de NanoServer temel baz imajlarını indiriyoruz:
Bu adımları gerçekleştirirken, PowerShell 5.0 ile gelen paket yönetim komutlarını kullanıyor olacağız. Öncelikle ContainerImage paket sağlayıcısını yüklüyoruz.
Aşağıdaki komutu uygulayarak WindowsServerCore imajının indirilmesini başlatıyoruz. Boyut büyük olduğu için biraz zaman alacaktır.
Daha sonra da NanoServer imajını aşağıdaki komutla indirme sürecini tetikliyoruz:
İndirme süreçleri tamamlandıktan sonra artık container host sunucumuz üzerindeki yerel container imaj repository içerisinde her iki imajın da aşağıda görüldüğü gibi listelendiğini göreceksiniz:
Base imajlar hazırlandıktan sonra Docker servisini yeniden başlatıyoruz:
Son olarak da aşağıdaki komut kullanılarak indirdiğimiz imajlara “latest” etiketlemesini yapıyoruz:
Aşağıda container yönetiminde yaygın olarak kullanılan PowerShell komutlarının bir listesini görmektesiniz:
• Container modülü içerisindeki komutları listeler.
Get-command –module Containers
• Container host hakkında bilgileri görüntüler.
Get-ContainerHost
• Container host üzerindeki imaj listesini getirir.
Get-containerImage
• Container host üzerindeki sanal switch listesini getirir.
Get-VMSwitch
$container=New-Container –name “Mycontainer” –containerImageName WindowsServerCore
Container Başlatmak
Start-Container -Name “MyContainer”
Get-Container
Container Bağlanmak
Enter-PSSession -ContainerId $container.ContainerId –RunAsAdministrator
Get-Process
NOT : Container oluşturmak için ayrıca “docker” komutunu da kullanabilirsiniz.
DOCKER ARACI İLE CONTAINER YÖNETİMİ
Container altyapısının yönetimi için PowerShell komutlarının yanında DOCKER aracını da kullanabilirsiniz. Sıklıkla kullanılan docker komutları:
· docker images : Container imaj listesini görüntüler.
· docker run : Yeni bir container oluşturur ve yeni imajın CMD komut satırı arabirimini başlatır.
Container imajımız açıldıktan sonra içerisine ilave rol, servis, bileşen ya da uygulamaları kurabilirsiniz. Örneğin yukarıdaki resimde görüldüğü gibi Web Server rolünü yüklüyoruz ve container oturumumuzu kapatıyoruz.
Docker commit komutunu kullanarak web server rolünü içeren yeni bir container imaj kopyasını imaj kütüphanesine kaydediyoruz. Docker images ile listediğimizde yeni imajı görüyoruz.
Yeni container imajını docker run komutu ile başlatıyoruz. Benzer şekilde yeni imaj içerisine farklı ekleme, kurulum vb. yaparak yeni container imaj kopyaları oluşturabilirsiniz.
Oluşan container imajlarını silmek için docker rm komutunu kullanabilirsiniz.
MIcrosoft Azure Bulutunda ContaIner Host Kurulumu
Microsoft Azure bulut ortamında hazır olarak Container Host imajı geliyor. Yukarıdaki şekilde görüldüğü gibi New à Compute à Windows Server 2016 with Containers Tech Preview menü yolunu takip ederek container host sunucusunu hızlı bir biçimde provizyonlayabilirsiniz.
Create Virtual Machine ekranında container host sunucu adı, administrator hesabı ve şifresi, resource group tanımı ve veri merkezi bölge seçimini yaptıktan sonra OK ile onaylayarak sunucunun provizyonlanma sürecini başlatıyoruz.
Sunucumuzun kurulumu tamamlandıktan sonra yukarıdaki şekilde de görüldüğü gibi Connect butonuna tıklayarak sunucumuza bağlanıyoruz.
İlgili Container bileşeni ve powershell modülünün kurulu olarak geldiğini göreceksiniz. Yukarıdaki gibi Get-Command ile ve aşağıdaki diğer cmdlet’ler ile bunu kontrol edebilirsiniz.
Container Host sunucumuz üzerinde hazır olarak WindowsServerCore imajı geliyor.
Yukarıdaki şekilde görüldüğü gibi New-Container powershell cmdlet ile bu baz imajı kullanarak yeni bir container imaj hazırlıyoruz. Sonrasında da Start-Container komutu ile container’ı başlatıyoruz.
Hazırlanan container’a Enter-PSSession komutu ile bağlanıp, sunucu üzerinde diğer işlemleri gerçekleştirebilirsiniz. Örneğin imaja Web Server rolünü yukarıda görüldüğü gibi ilave edebilirsiniz.
Web Server rolünü ve servisinin kurulumunu tamamladıktan sonra container Stop-Container komutu ile kapatılır. Web Server rolü kurulmuş bu imajdan New-Container powershell komutu ile WebServer adında yeni bir container imajı oluşturuyoruz. Get-ContainerImage komutu ile imaj kütüphanesi içerisine baktığımızda yeni imajın da listelendiğini göreceksiniz.
Farklı projeler için while döngüsü kullanılarak bu imajdan aynı anda çok sayıda çoğaltabilirsiniz.
Web Server rolü kurulu bu imajlardan üretilen container’lar üzerinde Web Server rolünün kurulu olarak geldiğini göreceksiniz. Test ya da kullanım süreciniz bittiğinde de bu container’ları hızlıca ortamdan temizleyebilirsiniz.
İKİNCİ BÖLÜMÜN SONU;
Evet, Windows Server 2016 ile gelen ve sanallaştırmada yeni bir dönemi başlatacak “Container” mimarisini incelediğimiz makale serimizin ikinci bölümüni de burada noktalıyoruz. Bu bölümde Windows Server Container yönetimini adım adım uygulamalarla inceledik. Makale serimizin bir sonraki bölümünde görüşmek üzere sağlıcakla kalın.
Mesut ALADAĞ
Microsoft MVP, MCT, P-TSP
www.mesutaladag.com | @mesutaladag