Learning Windows Server Containers: Build and deploy high-quality portable apps faster
By Srikanth Machiraju and Ritesh Modi
()
About this ebook
Windows Server Containers are independent, isolated, manageable and portable application environments which are light weight and shippable. Decomposing your application into smaller manageable components or MicroServices helps in building scalable and distributed application environments. Windows Server Containers have a significant impact on application developers, development operations (DevOps) and infrastructure management teams. Applications can be built, shipped and deployed in a fast-paced manner on an easily manageable and updatable environment.
Learning Windows Server Containers teaches you to build simple to advanced production grade container based application using Asp.Net Core, Visual Studio, Azure, Docker and PowerShell technologies. The book teaches you to build and deploy simple web applications as Windows and Hyper-V containers on Windows 10 and Windows Server 2016 on Azure. You will learn to build on top of Windows Container Base OS Images, integrate with existing images from Docker Hub, create custom images and publish to Hub. You will also learn to work with storage containers built using Volumes and SQL Server as container, create and configure custom networks, integrate with Redis Cache containers, configure continuous integration and deployment pipelines using VSTS and Git Repository. Further you can also learn to manage resources for a container, setting up monitoring and diagnostics, deploy composite container environments using Docker Compose on Windows and manage container clusters using Docker Swarm. The last chapter of the book focuses on building applications using Microsoft’s new and thinnest server platform – Nano Servers.
Related to Learning Windows Server Containers
Related ebooks
Learning Windows Server Containers Rating: 0 out of 5 stars0 ratingsMicroservices with Azure Rating: 0 out of 5 stars0 ratingsAzure Serverless Computing Cookbook Rating: 0 out of 5 stars0 ratingsCloud Native Python: Build and deploy resilent applications on the cloud using microservices, AWS, Azure and more Rating: 0 out of 5 stars0 ratingsHands-On Microservices with C# 8 and .NET Core 3: Refactor your monolith architecture into microservices using Azure, 3rd Edition Rating: 0 out of 5 stars0 ratingsAzure IoT Development Cookbook Rating: 0 out of 5 stars0 ratingsLearning NServiceBus Sagas Rating: 0 out of 5 stars0 ratingsMicrosoft Azure Security Rating: 0 out of 5 stars0 ratingsLearning Azure Functions Rating: 0 out of 5 stars0 ratingsImplementing Azure Solutions Rating: 0 out of 5 stars0 ratingsServerless Integration Design Patterns with Azure: Build powerful cloud solutions that sustain next-generation products Rating: 0 out of 5 stars0 ratingsWindows 10 for Enterprise Administrators: Modern Administrators' guide based on Redstone 3 version Rating: 0 out of 5 stars0 ratingsStream Analytics with Microsoft Azure: Real-time data processing for quick insights using Azure Stream Analytics Rating: 0 out of 5 stars0 ratingsHands-On Machine Learning with Azure: Build powerful models with cognitive machine learning and artificial intelligence Rating: 0 out of 5 stars0 ratingsEnterprise Application Architecture with .NET Core: An architectural journey into the Microsoft .NET open source platform Rating: 0 out of 5 stars0 ratingsAzure Architecture Explained: A comprehensive guide to building effective cloud solutions Rating: 0 out of 5 stars0 ratingsMastering Cloud Development using Microsoft Azure Rating: 0 out of 5 stars0 ratingsLearning ASP.NET Core 2.0: Build modern web apps with ASP.NET Core 2.0, MVC, and EF Core 2 Rating: 0 out of 5 stars0 ratingsGetting Started with BizTalk Services Rating: 0 out of 5 stars0 ratingsPractical Microservices Rating: 0 out of 5 stars0 ratingsMigrating Applications to the Cloud with Azure: Re-architect and rebuild your applications using cloud-native technologies Rating: 0 out of 5 stars0 ratingsCloud Analytics with Google Cloud Platform: An end-to-end guide to processing and analyzing big data using Google Cloud Platform Rating: 0 out of 5 stars0 ratings
System Administration For You
CompTIA A+ Complete Review Guide: Core 1 Exam 220-1101 and Core 2 Exam 220-1102 Rating: 5 out of 5 stars5/5Linux: Learn in 24 Hours Rating: 5 out of 5 stars5/5Cybersecurity: The Beginner's Guide: A comprehensive guide to getting started in cybersecurity Rating: 5 out of 5 stars5/5Linux Command-Line Tips & Tricks Rating: 0 out of 5 stars0 ratingsPractical Data Analysis Rating: 4 out of 5 stars4/5Linux Bible Rating: 0 out of 5 stars0 ratingsEthical Hacking Rating: 4 out of 5 stars4/5Learn PowerShell in a Month of Lunches, Fourth Edition: Covers Windows, Linux, and macOS Rating: 5 out of 5 stars5/5Bash Command Line Pro Tips Rating: 5 out of 5 stars5/5Networking for System Administrators: IT Mastery, #5 Rating: 5 out of 5 stars5/5Linux for Beginners: Linux Command Line, Linux Programming and Linux Operating System Rating: 4 out of 5 stars4/5Mastering Windows PowerShell Scripting Rating: 4 out of 5 stars4/5PowerShell: A Comprehensive Guide to Windows PowerShell Rating: 4 out of 5 stars4/5Linux Commands By Example Rating: 5 out of 5 stars5/5PowerShell: A Beginner's Guide to Windows PowerShell Rating: 4 out of 5 stars4/5Learning Microsoft Endpoint Manager: Unified Endpoint Management with Intune and the Enterprise Mobility + Security Suite Rating: 0 out of 5 stars0 ratingsThe Complete Powershell Training for Beginners Rating: 0 out of 5 stars0 ratingsCommand Line Git - Everything You Need To Know To Get Started Rating: 0 out of 5 stars0 ratingsFreeBSD Mastery: Jails: IT Mastery, #15 Rating: 5 out of 5 stars5/5How To Speed Up Computer: Your Step-By-Step Guide To Speeding Up Computer Rating: 0 out of 5 stars0 ratingsPowerShell Automation and Scripting for Cybersecurity: Hacking and defense for red and blue teamers Rating: 0 out of 5 stars0 ratingsCitrix Virtual Apps and Desktops Troubleshooting Rating: 5 out of 5 stars5/5Easy Linux For Beginners Rating: 2 out of 5 stars2/5Linux Shell Scripting Cookbook - Third Edition Rating: 4 out of 5 stars4/5Improve your skills with Google Sheets: Professional training Rating: 0 out of 5 stars0 ratingsWordpress 2023 A Beginners Guide : Design Your Own Website With WordPress 2023 Rating: 0 out of 5 stars0 ratingsHow To Recover Deleted Files: Your Step-By-Step Guide To Recovering Deleted Files Rating: 0 out of 5 stars0 ratingsLearn PowerShell Scripting in a Month of Lunches Rating: 0 out of 5 stars0 ratings
Reviews for Learning Windows Server Containers
0 ratings0 reviews
Book preview
Learning Windows Server Containers - Srikanth Machiraju
Title Page
Learning Windows Server Containers
Build and deploy high-quality portable apps faster
Srikanth Machiraju
BIRMINGHAM - MUMBAI
Copyright
Learning Windows Server Containers
Copyright © 2017 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: April 2017
Production reference: 1240417
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-78588-793-2
www.packtpub.com
Credits
Foreword
Containers have become an elegant way to virtualize system level services in the recent past. Coupled with microservices which provide well-bounded, self-contained, application services, containers bring a revolutionary shift to the way solutions are built and deployed on computer infrastructure. Docker has been a favorite way to build containers and container clusters on open source. The ability to pack hundreds or even thousands of these containers into a physical machine provides a great way to deploy services in an optimal and scalable fashion. The ability to use different operating systems in each of the containers (such as, Linux, Windows) along with any needed functionality packed together is a convenience that contributes to building modular systems. Microsoft Windows and Azure cloud platforms have matured over time and plays a critical role in building systems addressing the needs of digital transformation currently underway in enterprise IT systems across the world. Whether it is the enterprise application that handles millions (or billions) of mobile users or one that handles zillions of IoT sensors (connected cars, refrigerators, or whatever you have), it can now be built using Windows as a platform using the containers model and hosted on Azure cloud to provide the necessary scale.
Deployment and frequent releases is another area which has been revolutionized by container technology. DevOps, the practice that bring together development, deployment, and operations into a seamless continuum by making infrastructure as code a reality, is a part of the agile way of building solutions today. By using the concept of containers, enterprise IT teams can effortlessly and efficiently deploy solutions to immutable infrastructure.
This book deals with all the above aspects and is a timely addition to the windows and Azure developer's toolkit to understand windows containers and their usage in building different types of systems. The integration of DevOps into the subject brings a well thought out addition that helps in implementing cutting edge application development practices.
The author is a well-seasoned developer and architect, who has significant experience building modern enterprise solutions for large customers and his practical approach in dealing with this complex subject shines through in every page of this book. Bringing his consulting background and enormous technical prowess to the task, he has detailed out approach to application development with windows containers which will help developers, architects and operation teams in building modern cloud based enterprise scale applications.
Starting with an introduction to containers and microservices, the author takes a developer on a profound journey that covers from building a simple Hello World container to advanced practical usage, such as building complex enterprise applications using SQL Server, Redis Cache, storage volumes, VSTS for continuous build and deployment, resource management, and insights.
Ritesh Modi
Senior Technology Evangelist
Microsoft India
About the Author
Srikanth Machiraju is an ardent techie, DevOps practitioner, and developer consultant on Microsoft Azure and .NET technologies. He works for Microsoft Global Services, Modern Apps team, Hyderabad India. Over the past 9 years he has worked as a lead consultant for design and development of cloud-based application, migrating legacy applications to cloud, corporate trainer on Azure technologies, and speaker at various user group meetings on Microsoft Technologies. He loves to teach and evangelize best practices and patterns in application development. He continues to explore building modern, smart, and cloud-born applications with more reachability and integration using Azure, IoT devices, Artificial Intelligence, deep learning, parallelism, and enterprise level security. When away from work he loves to cook for his family, explore and review new food joints, watch movies, swim, and play Xbox.
He is also working on another artwork called Developing Bots using Microsoft Bot Framework which is due for release by end of 2017. The book focuses on building smart and intelligent bots using Microsoft Bot framework and Azure Cognitive Services.
I would like to thank my family, specially my wife Sonia Madan for being unconditionally supportive throughout the journey of this book. I would also like to thank my mentors Vineet Bhatia and Phani Tipparaju from BrainScale for their guidance throughout my career without learning from them this achievement would not have been possible. It is the people above and many more I may not have listed here inspired me learn, achieve, and feel obligated to pass the knowledge and learnings to the willing.
About the Reviewer
Romeo Mlinar has been working as Microsoft Senior System Engineer. Professionally connected with computer technology for more than a decade. Passionately devoted with Microsoft products and technology, for instance, system center, planning and design of Active Directory, as well as Windows Server services, devoting special attention to virtualization (Hyper-V), which is his recent preoccupation. He bears large number of Microsoft industrial certificates. Since 2012, he is Microsoft's Most Valuable Professional (MVP) for Cloud and Datacenter Management. He is a regular speaker at various IT conferences in the region and abroad. Also, he is an IT Pro and Edu IT Pro User Group lead in Zagreb, Croatia. He spends his free time with people from the IT world, acquiring new knowledge, eagerly sharing it with others, while at the same time enjoying his life with his family.
He blogs at: http://blog.mlinar.biz/.
He was also a reviewer on Hyper-V 2016 Best Practices written by Romain Serre and Benedict Berger.
I would like to thank my wife Ana and to my lovely son Vito, for their kind and full support, their understanding, and encouragement. Without you guys I could not have followed my passion. You are the source of my inspiration and happiness.
www.PacktPub.com
For support files and downloads related to your book, please visit www.PacktPub.com.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
https://www.packtpub.com/mapt
Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt books and video courses, as well as industry-leading tools to help you plan your personal development and advance your career.
Why subscribe?
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
Customer Feedback
Thanks for purchasing this Packt book. At Packt, quality is at the heart of our editorial process. To help us improve, please leave us an honest review on this book's Amazon page at: https://www.amazon.com/dp/1785887939.
If you'd like to join our team of regular reviewers, you can e-mail us at: [email protected]. We award our regular reviewers with free eBooks and videos in exchange for their valuable feedback. Help us be relentless in improving our products!
Table of Contents
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
Exploring Virtualization
Microsoft's history of virtualization
Understanding virtualization levels
Hardware/platform/server virtualization
Storage virtualization
Network virtualization
OS virtualization
Limitations of virtualization
Machine turn up time
Low resource utilization
Operational costs
Application packaging and deployment
Introduction to containerization
A few key implementations of containers
Docker
Docker architecture
Development life cycle
Docker's success stories
The road ahead for Dockers
Introduction to Windows Server Containers
A little background
Windows Server Container versions
Hyper-V Containers
Why another container type?
Containers terminology
Container host
Container OS image
Container images
Container registry
Dockerfile
Benefits of containers
Windows Server Containers on Azure
Comparing containerization and VM virtualization
Cluster management
Docker Swarm
Kubernetes
DC/OS
Tooling support
Visual Studio Tools for Docker
Visual Studio Code
Visual Studio Online
Docker for Windows
Docker Toolbox for Windows
Who else is working with containers?
Turbo
Rocket
Summary
Deploying First Container
Preparing the development environment
Containers on Windows 10
Windows Server Containers on-premise
Windows Server Containers on Azure
Container options on Windows Server 2016 TP5
Create Windows Server 2016 TP5 on Azure
Installing base OS images and verifying installation
Windows Server Containers development
Pulling images from Docker Hub
Preparing a Windows Containers image
Running web application in Docker
Creating a container
Decoding image preparation
FROM
MAINTAINER
LABEL
RUN
COPY
EXPOSE
CMD
Starting and stopping Docker Service
Summary
Working with Container Images
Listing images
Searching images
docker pull
docker run
Detached versus foreground mode
Name
Isolation technology
Overriding Dockerfile image defaults
docker build
Build context
Build Docker image
dockerignore
Docker tags
docker commit
docker exec
docker push
Cleaning up containers or images
Summary
Developing Container Applications
Setting up the development environment
Understanding .NET Core and ASP.NET Core
ASP.NET Core architecture
Hosting ASP.NET applications
Developing an ASP.NET Core application
The Music Store application
Deploying ASP.NET Core application as Windows Server Container
Dockerizing the application
Connecting the dots
Test and run on a developer machine
Hosting ASP.NET Core on IIS in Windows Server Container
Developing ASP.NET 4.5 applications as Windows Server Containers
Dockerizing ASP.NET 4.5 Web Application
Connecting the dots
Windows Server Container networking
Summary
Deploying Container Applications
Deploy Azure VMs using ARM
Configure VM for remote connectivity
Configuring remote Docker host
docker.pid
dockerd configuration options
Debug
max-concurrent-downloads
max-concurrent-uploads
Host
Security
Deploying containers remotely
Configuring load balancer
Deploy Hyper-V Containers
Pre-requisites
Steps to run Music Store as a Hyper-V Container
Dangling images
Summary
Storage Volumes
Storage volumes
Docker volumes
Sharing volumes
Music Store—store images using volumes
Deleting volumes
Relational databases and SQL Server container
Music Store—store data using SQL Server container
Summary
Redis Cache Containers
Creating Redis Cache container
Creating Redis image and container
Operating Redis Cache containers
Redis Desktop Manager
Publishing Redis container
Persistent Redis containers
Master-slave configuration
Integrating Redis containers with Music Store
Summary
Container Network
Introduction to Windows networking
Windows Containers--network management stack
Configuring container networks
Static port mappings
Disconnecting containers from network
Limitations of WinNAT network implementation
Networking modes
Transparent
L2 bridge or L2 tunnel
Multiple container networks
Container network routing
Single node
Multinode
Multi-subnet deployment of Music Store
Managing Docker networks using Windows PowerShell for Docker
Summary
Continuous Integration and Delivery
Introduction to Visual Studio Team Services
Continuous integration
Signing up for a VSTS account
Uploading Music Store to VSTS
Configuring automated builds
Why do we need a custom build agent?
Custom build agent
Queuing build
Continuous delivery
Configuring service principal name
Configure staging environment
Configure the production environment
Testing CI/CD
Summary
Manage Resource Allocation and REST API
Container resource allocation
CPU resource allocation
Memory allocation
Network allocation
Insights and telemetry
Application Insights
Operations Management Site
Optimizing Dockerfiles
Optimizing image size
Optimize build speed
Ordering instructions
Docker REST API
List containers
Create container
Start/stop container
Removing a container
Docker .NET SDK
List containers
Creating a container
Starting a container
Stopping a container
Removing a container
Downloading an image
Summary
Composite Containers and Clustering
Orchestrating multi-container deployment using docker-compose
A docker-compose file reference
Build options
Naming containers
Dependencies
Named volumes
Docker CLI options
Start/stop services
Building images
Creating containers
Executing commands
Killing commands
Pause or unpause
Scale
Cluster management
Docker Swarm architecture
Setting up a swarm cluster
Generate SSH key
Create swarm cluster on Azure Container Service
Docker Swarm features
Summary
Nano Server
A brief introduction to Nano Server
Benefits of running workloads on Nano Server
Live migrations
Zero footprint
Package management
Reboots
Provisioning time
Server management
PowerShell core
Provisioning Nano Server on Azure
Provisioning Nano Server on Windows 10
Package management
Deploy .NET Core applications on Nano Server
Configuration management using PowerShell DSC
Nano containers
Summary
Preface
Containers is the next breakthrough in building modern and cloud based applications, comparing it with its predecessors like VM virtualization one would realize that containerization is the fastest, most resource-efficient, scalable, and secure way of building application hosting environments we know so far. Learning Windows Server Containers take you through a long and profound journey of building containerized ASP.NET applications on latest windows server platforms using Docker command line and Docker REST API. The book shows you how to build and ship containers from one environment to other with less hassle during the continuous integration and delivery process. You will learn to build containerized applications using scalable storage containers, cache containers with isolation levels like in VMs. The book helps you build an ecosystem of container hosts, manage composite container deployments, and resource governance.
What this book covers
Chapter 1, Exploring Virtualization, teaches you different virtualization levels, challenges with each type of virtualization, containers as a virtualization platform, and benefits of running containerized applications, tooling support, other container platforms available in market today.
Chapter 2, Deploying First Container, teaches you to set up development environment, understand the Docker terminology, installing images from Docker Hub, create custom windows container images using Docker CLI and authoring Dockerfile.
Chapter 3, Working with Container Images, will introduce you to common container management tasks such as listing the containers, start/stop, cleaning up unused containers or images using Docker CLI on Windows Server environment.
Chapter 4, Developing Container Applications, teaches you to create and deploy ASP.NET Core Web applications using Visual Studio 2015, .NET Core, and C# to Windows Server 2016 Core as Windows Container using PowerShell and Docker CLI.
Chapter 5, Deploying Container Applications, teaches you to create Windows Server Container environment on Azure using Azure Resource Manager templates and Azure PowerShell, configure remote management for container hosts, deploy container applications remotely as Windows Containers and Hyper-V containers, configuring software load balancer and so on.
Chapter 6, Storage Volumes, talks about building file based storage based containers using Docker volumes and relational database containers using Microsoft SQL Server.
Chapter 7, Redis Cache Containers, teaches you to create persistent Redis Cache containers using Redis and storage volumes.
Chapter 8, Container Network, introduces you to Windows Container networks, different networking modes, building custom container networks using different networking modes and deploying containers on custom networks.
Chapter 9, Continuous Integration and Delivery, teaches you to build continuous integration and deployment pipelines for container applications using Visual Studio Team Services (TFS Online) on Azure, Docker Hub, and Git. You will learn to create a create a custom build server for building, packaging and releasing containers to windows container hosts.
Chapter 10, Manage Resource Allocation and REST API, teaches you to manage container resource utilization, create and manage containers using Docker REST API via Postman and C#, image optimization strategies and monitoring options available for containers and container hosts.
Chapter 11, Composite Containers and Clustering, teaches you to orchestrate multiple container deployments using Docker Compose, set up scaling for multicontainer environments and authoring Docker Compose service definition. Also, you will learn the concepts of cluster management using Docker Swarm and Azure Container Service.
Chapter 12, Nano Server, serves as an introduction to Windows Nano Server, building custom Nano Server images using PowerShell, deploying containers on Nano Server, working with Nano containers, and configuring Nano Server using PowerShell DSC.
What you need for this book
This book assumes basic knowledge of PowerShell, C#, .NET, ASP.NET 5, cloud computing, and Azure. The book will help your setup development environment on desktop operating system like Windows 10 (with Anniversary update) and deploying container applications on VMs running on-premise and on Azure. To practice building containerized applications on an on-premise environment like Windows 10, the host machine should have Hyper-V feature enabled. The book shows building virtual environments using Windows 10 built-in feature called Hyper-V but you can try any other desktop virtualization software like VMware or virtual box. The book also uses Visual Studio 2015 for application development, if you have hands-on experience working with Visual Studio 2015 it will easy to execute the samples. Following is the basic hardware configuration for running Hyper-V and Visual Studio 2015:
CPU: 1.6 GHz or faster processor, 4 cores
64-bit processor with Second Level Address Translation (SLAT) – (for Hyper-V only)
CPU support for VM Monitor Mode Extension (VT-c on Intel CPU's) – (for Hyper-V only)
Minimum of 8 GB RAM
Disk space: 80 GB
Apart from the these, you will also need an Azure subscription for creating container environments on Azure. Microsoft offers a free subscription which can be used for 30 days in-case you do not have a paid subscription. The software requirements for the book are as follows:
Visual Studio 2015 (Community Edition or above)
Windows 10 with Anniversary update
SQL Server Management Studio
Redis Desktop Manager
Postman
Internet connectivity is required to install any packages for application development, download images (ISO files) for windows server 2016 or source code from GitHub repository.
Who this book is for
The primary target audience for this book would be developers who would like to use Windows Server Containers to build portable apps that can run anywhere (laptop, server, and public or private cloud) without little or no changes to the code. Developers will be able to build and ship high-quality applications. As Windows Containers has a broad impact on developers and administrators alike, this book will also help IT professionals or DevOps Engineers prepare infrastructure which is easy to use and maintain. IT professionals will be able to optimize resource utilization by increasing the density of applications per machine. The concepts discussed in this book also help DevOps develop a container mindset, establish practices around publishing developed code as containers from development environment to production easily.
Conventions
In this book, you will find a number of text styles that distinguish between different kinds of information. Here are some examples of these styles and an explanation of their meaning.
Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: The remove() method finds the first instance of the element (passed an argument) and removes it from the list.
Any command-line input or output is written as follows:
docker search microsoft
New terms and important words are shown in bold. Words that you see on the screen, for example, in menus or dialog boxes, appear in the text like this: Click on Test Connection and ensure the connection is successful.
Warnings or important notes appear in a box like this.
Tips and tricks appear like this.
Reader feedback
Feedback from our readers is always welcome. Let us know what you think about this book-what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.
To send us general feedback, simply e-mail [email protected], and mention the book's title in the subject of your message.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.
Customer support
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
Downloading the example code
You can download the example code files for this book from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.
You can download the code files by following these steps:
Log in or register to our website using your e-mail address and password.
Hover the mouse pointer on the SUPPORT tab at the top.
Click on Code Downloads & Errata.
Enter the name of the book in the Search box.
Select the book for which you're looking to download the code files.
Choose from the drop-down menu where you purchased this book from.
Click on Code Download.
Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:
WinRAR / 7-Zip for Windows
Zipeg / iZip / UnRarX for Mac
7-Zip / PeaZip for Linux
You can download the latest code samples from the code repository belonging to this book from the author's code repository at https://github.com/vishwanathsrikanth/learningwsc.
The code bundle for the book is also hosted on Packt's GitHub repository at https://github.com/PacktPublishing/Learning-Windows-Server-Containers. We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!
Errata
Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books-maybe a mistake in the text or the code-we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.
To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the book in the search field. The required information will appear under the Errata section.
Piracy
Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.
Please contact us at [email protected] with a link to the suspected pirated material.
We appreciate your help in protecting our authors and our ability to bring you valuable content.
Questions
If you have a problem with any aspect of this book, you can contact us at [email protected], and we will do our best to address the problem.
Exploring Virtualization
In this highly competitive and rapidly changing world, for enterprises to be at the leading edge a highly reliable, cost effective, and infinitely scalable IT infrastructure is required. It is very important for enterprises to adapt to changing customer needs, fail fast, learn, and reinvent the wheel. Ever since hardware costs have come down the emphasis has shifted to making the most out of the capital investments made on physical infrastructure or reducing the amount of investments to build or rent new infrastructure. This fundamentally means running more applications/services out of the existing IT landscape.
Virtualized infrastructure solves the preceding problems and it caters to all the IT needs of a modern enterprise. Virtualization provides an abstraction