[今月の技術トピック] こんなコマンドですぐにサーバーを増やせる! ~Windows Server コンテナと PowerShell~

こんなコマンドですぐにサーバーを増やせる! ~Windows Server コンテナと PowerShell~

Windows Server 2016 にコンテナ技術が含まれることは、前回の TechNet Flash でもお伝えした通りですが、今回は簡単なコマンドと共にコンテナのスピード感を紹介しておきましょう。

さて、以下のコマンドを見てください。たった 16 行のコマンドですが、このコマンドの中では

  1. 元のイメージから、Web サーバー Nginx 入りの新しいコンテナ イメージを作る
  2. 新しいイメージをベースに Web サーバー用のコンテナを作って立ち上げる

という 2 つの大きな作業が含まれています。言わば、仮想マシンに nginx をインストールしてテンプレート化し、それをコピーしてもう 1 台の仮想マシンを作るのと同じような作業をしているのです。

  1. $container01 = New-Container -Name webbase -ContainerImageName WindowsServerCore -SwitchName "virtual Switch"
  2. Start-Container $container01
  3. Enter-PSSession -ContainerId $container01.ContainerId -RunAsAdministrator
  4. [コンテナに接続中] wget -uri "https://nginx.org/download/nginx-1.9.3.zip" -OutFile "c:\nginx-1.9.3.zip"
  5. [コンテナに接続中] expand-archive -Path C:\nginx-1.9.3.zip -DestinationPath c:\ -Force
  6. [コンテナに接続中] exit
  7. Stop-Container $container01
  8. $webserverimage01 = New-ContainerImage -Container $container01 -Publisher Demo -Name nginxwindows -Version 1.0
  9. $webservercontainer01 = New-Container -Name webserver1 -ContainerImageName nginxwindows –SwitchName "virtual Switch"
  10. Start-Container $webservercontainer01
  11. Enter-PSSession -ContainerId $webservercontainer01.ContainerId -RunAsAdministrator
  12. [コンテナに接続中]: PS C:\Windows\system32> cd C:\nginx-1.9.3\
  13. [コンテナに接続中]: PS C:\nginx-1.9.3> start nginx
  14. [コンテナに接続中]:PS C:\nginx-1.9.3> exit
  15. Add-NetNatStaticMapping -NatName "ContainerNat" -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress 172.16.0.2 -InternalPort 80 -ExternalPort 80
  16. if (!(Get-NetFirewallRule | where {$_.Name -eq "TCP80"})) {New-NetFirewallRule -Name "TCP80" -DisplayName "HTTP on TCP/80" -Protocol tcp -LocalPort 80 -Action Allow -Enabled True }

仮想マシンは作りません。OS ファイルのコピーもしません。コンテナの世界では、9 行目のコマンド 1 行を、コンテナの名前を変えて実行するだけで、新しい Web サーバーが手に入るのです。

さて、この世界観を知らずして、今後のインフラストラクチャーは語れません。是非、一度お試しください。そして、まずは Microsoft Azure 上で Windows Server Container Preview という Compute のテンプレートを使って仮想マシンを作成しておきましょう。それだけで、Windows Server のコンテナの設定や、コンテナのベース イメージ WindowsServerCore の準備が整っており、スムーズに作業に入っていくことができます。

トライファースト! Azure の無償評価版が、あなたをクラウドの世界、そしてコンテナの世界へ導いてくれることでしょう。

日本マイクロソフト株式会社
エバンジェリスト
高添 修 <Blog