Getting started with Windows Containers: In Practice

In previous blog post, we discussed what are windows containers, how they are different from Hyper-V containers and how they are beneficial to developers and sysadmins. We also discussed how Docker as a company has played an important part in the story. In this blog post, we will get quickly get started with installing windows containers and run our first container image by pulling it from docker registry.

Environment Pre-Requisites

  1. You must have a machine with Windows Server 2016 or Windows 10 installed on it. It may be a physical machine or the virtual machine. On the Sku side, you can have either DataCenter version or Standard version as well. Or you may also use Windows Server Core version.
  2. If its a virtual machine, make sure it has nested virtualization enabled.
  3. All windows updates should be installed on the machine.
  4. Administrative access to the machine.

Continue reading “Getting started with Windows Containers: In Practice”

Getting started with windows Containers : Covering Basics

Windows Server 2016 introduced a new feature called Containers. By installing this feature, you can run windows containers on your server. However, these are not Linux-based and they are not related to docker (as in docker software) as well. These containers run on Windows and run Windows on the inside. Also, These conform to the Open Container Initiative (OCI). They allow you to run applications insulated from the rest of the system, within portable containers that include everything an application needs to be fully functional.

The windows containers technology from Microsoft shares many similarities with its Linux counterpart. Both provide an isolated environment for running applications without affecting the rest of the system and without being affected by that system.
Continue reading “Getting started with windows Containers : Covering Basics”

Cloning Virtual Machines in Hyper-V

Microsoft introduced Hyper-V as a virtualization platform in 2008, and it continued to release new Hyper-V versions with new Windows server versions. Since Hyper-V’s debut, it has always been a Windows Server feature, which could be installed whenever a server administrator decided to do so. It’s also available as a separate product called Microsoft Hyper-V Server.  These days its also available in the Windows Client OS versions since Windows 8. So IT Pros and other people can quickly create their own VMs (or Virtual Machines) as and when they need it.

Cloning Virtual Machines refers to creating another copy of the existing virtual machines. Continue reading “Cloning Virtual Machines in Hyper-V”

Enable and Use Nested Virtualization on Azure Virtual Machine

Nested Virtualization is one of the cool new features in Windows Server 2016 that allows you to install hyper-v, create and run virtual machines inside a hyper-v virtual machine itself. In other words, a hyper-v virtual machine can act as a virtual host server. A great benefit of nested Hyper-V virtualization is for labs and training scenarios where you can, for instance, build a cluster of several virtual Hyper-V hosts on a single physical computer. This also allows one to use hyper-v containers and is required by Docker.

Also, provided you have required resource capacity, there are no depths of this feature. That means, you can create a virtual machine, inside a virtual machine, install hyper-v on guest virtual machine and then create virtual machines inside it. Well if you have seen inception, its something like it.  In this blog post, we will learn how to do the same for Azure Virtual Machine.  Continue reading “Enable and Use Nested Virtualization on Azure Virtual Machine”

Copy files to/from remote machine using PowerShell Remoting

It is easy to copy files from one network share to another. This can be done using either some kind of GUI tool or command line tool like PowerShell or robocopy. However you may not want to open SMB ports on a machine for obvious security reasons. More so is true of cloud hosted virtual machines.  In such a case, you can also copy files from your local machine to remote machine or vice versa using PowerShell remoting. In this blog post, we are going to discuss the steps to do the same.

Configure Remote machine for PowerShell Remoting

If you have PowerShell v3 installed on the remote machine, configuring it for PowerShell Remoting is easy. Just run below command on the administrative PowerShell window:
Continue reading “Copy files to/from remote machine using PowerShell Remoting”

Rebuild msdb database on SQL server

I don’t do this a lot since most of the apps are now a days using Azure SQL using all the benefits it offers. So I thought it would be better to take note of all the steps done for this. If the msdb database is damaged and you do not have a backup of the msdb database (for whatsoever reasons), you can create a new msdb by using the instmsdb script. In this blog post, we’ll go through steps required for the same.

Rebuilding the msdb database using the instmsdb script will eliminate all the information stored in msdb such as jobs, alert, operators, maintenance plans, backup history, Policy-Based Management settings, Database Mail, Performance Data Warehouse, etc.

Continue reading “Rebuild msdb database on SQL server”

Error: IIS Website not listening on 0.0.0.0:443

We had this situation other day with one of the IIS websites. We were troubleshooting SSL on the site, and after that we were able to resolve that SSL issue. However, we found that the site only works from within the server. But from outside, we were getting connection refused. We checked and re-checked certificates, certificate trust store, windows firewall rules, event logs and firewall logs, SNI, bindings but still same issue.

While checking ports, we observed that port 443 is in listening state only for IP address 127.0.0.1 but not for 0.0.0.0 (Note that 0.0.0.0 means all possible IP address,  only ipv4). So it would require to be listening on the same, so that clients can connect to it. Continue reading “Error: IIS Website not listening on 0.0.0.0:443”