Category: Docker

Speaking at the Microsoft European Open Source Virtual Summit

Speaking at the Microsoft European Open Source Virtual Summit

I am honored to let you know that I will be speaking at the Microsoft European Open Source Virtual Summit 2020 on June 16th. Microsoft European Virtual Open Source Summit by the Microsoft Open Source team is a unique digital event, designed to celebrate communities, entrepreneurs, and developers coming together to build the future of open source technologies in the cloud.

The day will divide into four parallel tracks designed to provide the best learning experience for IT Pros, Developers, and Data Scientists. Each track will be packed with expert guest speakers who’ll be deep-diving into a wide variety of topics, from chaos engineering and serverless architecture to multi-cloud app development.

  • 2 Keynotes from GitHub and Red Hat
  • 4 Tracks with 7 sessions (check the agenda)
  • Ask the Experts Live Q&A
  • 30 Sessions from the most engaging Open Source speakers
  • Digital Expo Area with Digital booths of our partners

I will be presenting two sessions:

  • Hybrid Management capabilities for open source solutions like Azure Arc.
    11:30 – 12:15 CEST
    Register here
  • Making Windows Awesome for ALL Developers with Scott Hanselman
    13:00 – 13:45 CEST
    Register here.

More tracks and sessions:

  • Keynote Session 1: Open Source Built the Modern World by Nat Friedman, CEO, GitHub
  • Keynote Session 2: Business Benefits of Open Source Collaboration Between Red Hat and Microsoft by Stefanie Chiras, SVP & General Manager, Red Hat Enterprise Linux Business Unit
  • Track 1: Infra & Ops – Infra related topics around Linux, Hybrid Management, Chaos Engineering, and more.
  • Track 2: Innovation – Cloud-native track with diverse line-up of speakers and subjects.
  • Track 3: Data & AI – Learn all there is to know about Open Source and Data. Strong line-up also from partners.
  • Track 4: Developers – 7 amazing sessions ensuring the developer audience get what they want!

I hope to see you at the Microsoft European Open Source Virtual Summit! If you have any questions feel free to leave a comment.



Run Azure PowerShell in a Docker Container Image

Run Azure PowerShell in a Docker Container

Yesterday, the Azure PowerShell team announced the Azure PowerShell Docker Container images. In this post, I want to quickly highlight that announcement and show you how you can download, pull, and run Azure PowerShell in a Docker container image from Microsoft.

But first, let’s talk about why you would want to run an Azure PowerShell in a Docker container. Azure is continuously evolving, and the Azure PowerShell team releases a new version of the Azure PowerShell modules every three weeks. This makes it challenging to maintain a production or development environment up to date and ensuring the smooth execution of scripts. With the Azure PowerShell docker container image, you can quickly run scripts against a specific version of Azure PowerShell.

The team highlights the current scenarios:

  • On the same machine, you can run scripts that are using a different version of Az with no conflicts.
  • You can test a script against a different version of Az with no risks.
  • You can run the latest container image interactively.


Video Microsoft Ignite Live 2019 - Hyper-V Containers

Video Microsoft Ignite Live – Hyper-V and Containers

This is the last set of recordings of Microsoft Ignite Live stage recordings I am going to share. Today I am going to share two videos, in one I had the chance to speak with Craig Wilhite and Vinicius Apolinario about why you should care about containers and how to get started. In the second one, I spoke with Ben Armstrong from the Hyper-V team about some of the great fun bits the team is doing.

Video: Windows Container

A lot has been said about containers recently, but why should you care? Containers are not an “all or nothing” situation and understanding when they can be beneficial is key to a successful implementation. Come and learn from the containers team how you can get started with this technology and some tips and tricks that will help you with your containerization journey!

Video: Hyper-V

Ben Armstrong, Principal Program Manager on the Hyper-V team talks about some of the challenging, interesting, quirky, and just fun changes that have happened in virtualization over the last year.

I hope this gives you a quick look at some of the fun parts the Hyper-V team is doing with containers and Hyper-V. You can check out the following links to get more information:

Microsoft Ignite 2019 was a lot of fun, and you can also watch my session about Hybrid Cloud Management at Microsoft Ignite. If you have any questions, please let me know in the comments.



Docker Desktop WSL 2 Tech Preview

Run Linux Containers with Docker Desktop and WSL 2

Today, Docker launched the first Tech Preview of the Docker Desktop WSL 2. This means you can now use Docker Desktop and the Windows Subsystem for Linux 2 (WSL2) which is using the hypervisor in the background to run Linux containers on Windows 10. With the significant changes to the Windows Subsystem for Linux 2, you can now take advantage of these improvements with your Docker Desktop client.

Docker Desktop WSL 2 is currently in the edge version of Docker, and it also requires the Windows 10 Insider Preview builds for Windows 10 version 2004. That means you should only use for not production environments.

WSL 2 introduces a significant architectural change as it is a full Linux kernel built by Microsoft, allowing Linux containers to run natively without emulation. With Docker Desktop WSL 2 Tech Preview, users can access Linux workspaces without having to maintain both Linux and Windows build scripts.

Docker Desktop also leverages the dynamic memory allocation feature in WSL 2 to greatly improve the resource consumption. This means, Docker Desktop only uses the required amount of CPU and memory resources, enabling CPU and memory-intensive tasks such as building a container to run much faster.

You can find more information about the Tech Preview here.

Prerequisites

To run the Docker Desktop WSL 2, you will need to set up the Windows Subsystem for Linux 2 (WSL 2) first. You can do that using the following guide, or follow these steps:

Install Windows 10 Insider Preview build 18932 or later. WSL 2 will be available in Windows 10, version 2004. Today, you will need to install the Windows Insider Slow ring build.

Install the Windows WSL feature and the Windows Virtual Machine Platform feature running the following commands:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
 
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Download WSL Linux distribution based on Ubuntu 18.04 from the Microsoft Store. You can read more about Linux on Windows 10 here. The distribution needs to be set as the default WSL distro.

Enable Virtual Machine Platform

Enable Virtual Machine Platform

Make sure that the WSL distro is running in WSL 2 mode. You can check the list of distros installed on your Windows 10 machine, with the following PowerShell command:

wsl -l -v

To set the distro to WSL 2, you can run the following command. Change the name of the distro:

wsl --set-version DistroName 2
Install WSL 2

Install WSL 2

To find out more about installing WSL 2, check out the Microsoft Docs page.

You also set WSL 2 as the default for all Linux distros:

wsl --set-default-version 2

How to set up Docker and WSL 2

First, you will need to download the Docker Desktop for Windows Edge here. Make sure you already configured all the WSL 2 steps described in the prerequisites, before you install the Docker. If you are prompted if you want to use Linux containers or Windows containers during the installation, select Windows containers. If you choose Linux containers, you will have the classic Docker experience with a Hyper-V VM.

Install Docker for Windows and enable WSL 2

Install Docker for Windows and enable WSL 2

Run the installation wizard, and after a successful installation, the Docker Desktop menu displays the WSL 2 option. You can select WSL 2 from that menu to start and configure the daemon running WSL 2.

Docker for Windows Settings WSL 2

Docker for Windows Settings WSL 2

Now you can run a Linux container using Docker Desktop for Windows, running on Windows 10 using the Windows Subsystem for Linux 2 (WSL 2).

Linux Container on Windows 10

Linux Containers on Windows 10

You can now also do crazy things like run SQL Server on Linux in a Docker container on Windows 10.

SQL Server on Linux Docker Container Windows 10 WSL 2

SQL Server on Linux Docker Container Windows 10 WSL 2

I hope this gives you a good overview of how you will be able to run Linux containers on Windows in the future. Again this is still a Tech Preview, and we might see many changes to that feature. If you want to know more, read the full blog post on the Docker page. Also, check out the current Linux Container on Windows documentation. If you any questions, feel free to leave a comment.




Windows Server 2019

Which Windows Server 2019 Installation Option should I choose?

Windows Server 2019 will bring several installation options and tuning options for virtual machines, physical servers as well as container images. In this blog post, I want to give an overview of the different installation options of Windows Server 2019.

To compare the different Windows Server 2019 editions, check out the Microsoft Docs.

Installation Options for Windows Server 2019 Physical Servers and Virtual Machines

As always, you can install Windows Server 2019 in virtual machines or directly on physical hardware, depending on your needs and requirements. For example, you can use Windows Server 2019 as physical hosts for your Hyper-V virtualization server, Container hosts, Hyper-Converged Infrastructure using Hyper-V and Storage Spaces Direct, or as an application server. In virtual machines, you can obviously use Windows Server 2019 as an application platform, infrastructure roles or container host. And of course, you could also use it as Hyper-V host inside a virtual machine, leveraging the Nested Virtualization feature.

Installation OptionScenario
Windows Server CoreServer Core is the best installation option for production use and with Windows Admin Center remote management is highly improved.
Windows Server Core with Server Core App Compatibility FODWorkloads, and some troubleshooting scenarios, if Server Core doesn’t meet all your compatibility requirements. You can add an optional package to get past these issues. Try the Server Core App Compatibility Feature on Demand (FOD).
Windows Server with Desktop ExperienceWindows Server with Desktop Experience is still an option and still meets like previous releases. However, it is significantly larger than Server Core. This includes larger disk usage, more time to copy and deploy and larger attack surface. However, if Windows Server Core with App Compatibility does not support the App, Scenario or Administrators still need the UI, this is the option to install.


Remove All Docker Container Images

New Windows Server 2019 Container Images

Microsoft today released the new Windows Server 2019 again. After they quickly released Windows Server 2019 during Microsoft Ignite, they removed the builds again, after some quality issues. However, today Microsoft made the Windows Server 2019 builds available again. Microsoft also released new Windows Server 2019 Container Images for Windows, Windows Server Core and Nano Server.

Download Windows Server 2019 Container Images

You can get them from the new Microsoft Container Registry (MCR).

Microsoft was hosting their container images on Docker Hub until they switch to MCR (Microsoft Container Registry). This is now the source for all Windows Container Images like Windows Server 2019, Windows Server 2016 and all the Semi-Annual Channel releases like Windows Server, version 1709 or Windows Server, version 1803.

Download the Windows Server 2019 Semi-Annual Channel Container Images (Windows Server, version 1809). This includes also the new Windows Container Image.

 
docker pull mcr.microsoft.com/windows/servercore:1809
docker pull mcr.microsoft.com/windows/nanoserver:1809
docker pull mcr.microsoft.com/windows:1809

The Windows Server Core Image is also available as a Long-Term Servicing Channel Image:

 
docker pull mcr.microsoft.com/windows/servercore:ltsc2019

However, if you want to browse through container images, Docker Hub continues to be the right place to discover container images. Steve Lasker wrote a blog post about how Microsoft syndicates the container catalog and why.

Download Windows Server 2016 and Windows Server SAC Container Images

Also the existing Windows Server 2016 and Windows Server, version 1803 and Windows Server 1709 container images moved to the Microsoft Container Registry (MCR).

 
# Here is the old string for pulling a container
 
# docker pull microsoft/windowsservercore:ltsc2016
 
# docker pull microsoft/nanoserver:1709
 
# Change the string to the new syntax and use the same tag
 
docker pull mcr.microsoft.com/windows/servercore:ltsc2016
 
docker pull mcr.microsoft.com/windows/nanoserver:1709

You should also make sure to update your Dockerfile references:

Old Windows Server Dockerfile reference

FROM microsoft/windowsservercore:ltsc2016

New Windows Server Dockerfile reference

FROM mcr.microsoft.com/windows/servercore:ltsc2016

Removing the “latest” tag from Windows Images

Starting 2019, Microsoft is also deprecating the “latest” tag for their container images.

We strongly encourage you to instead declare the specific container tag you’d like to run in production. The ‘latest’ tag is the opposite of specific; it doesn’t tell the user anything about what version the container actually is apart from the image name. You can read more about version compatibility and selecting the appropriate tag on our container docs.

Removing Container Images

Remove All Docker Container Images

If you want to remove existing container images from your PC, you can run docker rmi to remove a specific image. You can also remove all containers and container images with the following commands:

 
# Remove all containers
docker rm $(docker ps -a -q)
 
# Remove all container images
docker rmi $(docker images -q)

If you want to know more about Windows Containers and the Microsoft container eco system, visit the Microsoft container docs.