Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

コンテナ on Windows


Published on

第10回 コンテナ型仮想化の情報交換会

  • Hello! Who wants to chat with me? Nu photos with me here
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

コンテナ on Windows

  1. 1. 第10回 コンテナ型仮想化の情報交換会@東京 1 コンテナ on Windows
  2. 2. アジェンダ • コンテナ?Docker? • Windows のコンテナ • 動かしてみよう • Deep Dive 2 !!! この内容はあくまでも個人的な検証とそこから得られる見解です !!!
  3. 3. コンテナ?Docker? 3 ハイパーバイザー と コンテナの違い 引用元: • ハイパーバイザー上で動作 • ホストOSとカーネルは共有しない ハイパーバイザー コンテナ • ハイパーバイザーが不要 • ホストOSとカーネルを共有 Solaris コンテナ - Solaris 10, Jail - FreeBSD, LXC - Linux コンテナ型の仮想化実装例
  4. 4. コンテナ?Docker? • メリット • 軽量 • ハイパーバイザー型に比べ性能を向上させやすい • デメリット • カーネルを共有 • ノイジーネイバー(近隣の影響)を受けやすい • 別のOSが使用できない • 使用場面 • アプリケーション開発 • Infrastructure as a Code/Immutable Infrastructure • いわゆるDevOps 4 一般的なコンテナのメリット 参考 :日本でもできる! マイクロソフト技術をフル活用した DevOps の具体的実現手法!
  5. 5. コンテナ?Docker? • ポータブル • アプリケーションを実行環境ごとパッケージング • リポジトリの存在 • パッケージを登録。再利用が可能 • バージョン管理システムとの親和性 • OS/アプリケーション のデプロイをコードで管理 5 Docker のメリット 参考 : Docker 最新動向と Azure Container Service 入門
  6. 6. Windows のコンテナ • Windows Server 2016 or Windows 10 • Hyper-V の役割 が必要(Hyper-V コンテナ) • Linux コンテナは動かない • Docker for Windows とはまた別 • 2種類のベース OS イメージ • windowsservercore • nanoserver • Azure/AWS でも動かせる!! 6 概要 ホスト OS Windows Server コンテナー Hyper-V コンテナー Windows Server 2016 フル UI Server Core イメージ Nano Server イメージ Windows Server 2016 Core Server Core イメージ Nano Server イメージ Windows Server 2016 Nano Nano Server イメージ Nano Server イメージ Windows 10 Insider Releases 利用不可 Nano Server イメージ 参考 :これが噂の Nano Server ~期待に応えるために小さくなった次期サーバー OS~
  7. 7. Hardware Windows のコンテナ • Windows Server コンテナー • コンテナ間でカーネルを共有 • 隔離性が低い 7 2つの実装 カーネル 管理OS プロセス コンテナ Docker Engine Hardware カーネル 管理OS プロセス コンテナ Docker Engine カーネル Hyper-V プロセス コンテナ カーネル Hyper-V プロセス コンテナ • Hyper-V コンテナー • コンテナ間は別カーネル • 隔離性が高い 同一管理組織(企業・部署等)での使用を想定 異なる管理組織での使用を想定
  8. 8. Nested Hyper-V • Hyper-V の中で動く Hyper-V • Hyper-V コンテナ を Hyper-V 上で動かす場合に使用 8
  9. 9. 9
  10. 10. Windows のコンテナ • docker コマンド • PowerShell は...? • PowerShell For Docker • us/virtualization/windowscontainers/management/d ocker-powershell 10 管理 Through our conversations with you, our users though forums, over Twitter, in GitHub, and even in person one question has come up more than any other – why can’t I see Docker containers from PowerShell? As we’ve discussed the pro’s, con’s and various options with you we’ve come to the conclusion that the container PowerShell module needed an update… So we are deprecating the container PowerShell module that has been shipping in the preview builds of Windows Server 2016 and have begun work replacing it with a new PowerShell module for Docker. While the development of this new module is already underway but with a different approach than in the past – we’re doing the work in the open. Our goal for this module is that it will be a community collaboration that results in a great PowerShell experience for containers though the Docker engine. This new module builds directly on top of the Docker Engine’s REST interface enabling user choice between the Docker CLI, PowerShell or both. _人人人人人_ > 開発中 <  ̄Y^Y^Y^Y^Y^ ̄
  11. 11. Windows のコンテナ • docker 1.12 が使用可能 11 管理 : docker コマンド コマンド アクション PowerShell docker images イメージのリスト Get-ContainerImage docker search Docker Hub の検索 N/A docker pull イメージのダウンロード Pull-ContainerImage docker run コンテナーの作成・起動 Run-ContainerImage docker start コンテナの開始 Start-Container docker stop コンテナの停止 Stop-Container docker ps 実行中のコンテナの確認 Get-Container docker rm コンテナの削除 Remove-Container PS C:¥> docker -v Docker version 1.12.2-cs2-ws-beta, build 050b611 開発中
  12. 12. 動かしてみよう • Windows Server の Windows コンテナー • jp/virtualization/windowscontainers/quick_start/quic k_start_windows_server 12 Windows Server コンテナー イメージの一覧 PS C:¥> docker images REPOSITORY TAG IMAGE ID CREATED SIZE microsoft/sample-dotnet latest c14528829a37 3 days ago 911 MB microsoft/iis latest b6a44de60ef9 2 weeks ago 8.96 GB microsoft/windowsservercore latest 93a9c37b36d0 5 weeks ago 8.68 GB microsoft/nanoserver latest e14bc0ecea12 5 weeks ago 810 MB コンテナの起動 PS C:¥> docker run -d -p 80:80 microsoft/iis:latest 83f7f70c8b54d94511c3d065be3891271b04e64bc274b779d15dac538882ba43 起動しているコンテナの確認 PS C:¥> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2544f4bf9a37 microsoft/iis:latest "C:¥¥ServiceMonitor..." 2 minutes ago Up 2 minutes >80/tcp elastic_curran
  13. 13. 動かしてみよう 13 Windows Server コンテナー コンテナの削除 PS C:¥> docker rm -f 83f7f70c8b54 83f7f70c8b54 対話形式での起動 PS C:¥> docker run -it microsoft/windowsservercore:latest powershell デタッチ C-p C-q アタッチ PS C:¥> docker attach e51b407b00cb
  14. 14. 動かしてみよう • Hyper-V コンテナー • jp/virtualization/windowscontainers/management/hy perv_container 14 Hyper-V コンテナー 対話形式での起動 PS C:¥> docker run -it --isolation=hyperv microsoft/nanoserver:latest powershell 起動しているコンテナの確認 PS C:¥> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4991551c5d2 microsoft/nanoserver:latest "powershell" 8 seconds ago Up 5 seconds evil_noyce
  15. 15. Deep Dive 15 関係するプロセス(Windows Server コンテナー) カーネル コンテナー エンジン vmcompute.exe wininit.exe コンテナ Docker エンジン dockerd.exe CExecSvc.exe PowerShell.exe image Docker クライアント docker.exe sandbox <ベース OS イメージ/コンテナーサンドボックス格納フォルダ> C:¥ProgramData¥docker¥windowsfilter <コンテナー 構成情報・ログ> C:¥ProgramData¥docker¥containers <構成ファイル> C:¥ProgramData¥docker¥containers¥ <コンテナID>
  16. 16. 16 Process Explorer ディスクの管理 wininit.exe wininit.exe
  17. 17. • Windows Server and Docker • and-docker-the-internals-behind-bringing-docker- and-containers-to-windows-by-taylor-brown-and- john-starks • Windows Container Networking • 16/05/05/windows-container-networking/ 17
  18. 18. まとめ 18 Microsoft 製品、結構使えます 正しい理解と踏み出す勇気で選択肢を増やしましょう! • コンテナ?Docker? • Windows のコンテナ • 動かしてみよう • Deep Dive