Windows Server

Windows Server 2016 Containers – Bölüm 2 – Windows Server Containers

Bu makale serimizde de sizlerle Windows Server 2016 ile gelen ve sanallaştırmada yeni bir dönemi başlatan “Container” mimarisini makalemizin ikinci bölümü ile incelemeye devam ediyoruz. Bu bölümde de Windows Server Container yapılarını, container oluşturma adımlarını, PowerShell ve Docker Container yönetimini ele alıyoruz.

Container makalemizin ilk bölümünde de aşağıdaki şekil üzerinde yapı hakkında bilgiler vermiştik.

clip_image002

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.

clip_image004

Bu kurulumu PowerShell cmdlet ile aşağıdaki şekilde de gerçekleştirebilirsiniz:

clip_image006

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.

clip_image008

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.

clip_image010

Daha sonra indirilen ZIP arşivini Program Files altına açıyoruz.

clip_image012

Docker dizinini sistem Environment Variables altındaki sistem yol tanımlarına ekliyoruz:

clip_image014

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:

clip_image016

Kurulum sonrasında Docker servisini başlatıyoruz:

clip_image018

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.

clip_image020

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.

clip_image022

clip_image024

Daha sonra da NanoServer imajını aşağıdaki komutla indirme sürecini tetikliyoruz:

clip_image026

İ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:

clip_image028

Base imajlar hazırlandıktan sonra Docker servisini yeniden başlatıyoruz:

clip_image030

Son olarak da aşağıdaki komut kullanılarak indirdiğimiz imajlara “latest” etiketlemesini yapıyoruz:

clip_image032

clip_image034

 

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

Yeni Bir Container Oluşturmak

$container=New-Container –name “Mycontainer” –containerImageName WindowsServerCore

clip_image036

clip_image038

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.

clip_image040

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.

clip_image042

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.

clip_image044

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.

clip_image046

clip_image048

Oluşan container imajlarını silmek için docker rm komutunu kullanabilirsiniz.

MIcrosoft Azure Bulutunda ContaIner Host Kurulumu

clip_image050

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.

clip_image052

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.

clip_image054

Sunucumuzun kurulumu tamamlandıktan sonra yukarıdaki şekilde de görüldüğü gibi Connect butonuna tıklayarak sunucumuza bağlanıyoruz.

clip_image056

İ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.

clip_image058

Container Host sunucumuz üzerinde hazır olarak WindowsServerCore imajı geliyor.

clip_image060

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.

clip_image062

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.

clip_image064

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.

clip_image066

Farklı projeler için while döngüsü kullanılarak bu imajdan aynı anda çok sayıda çoğaltabilirsiniz.

clip_image068

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

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu