Windows Devs Now Have Direct Pipeline to Docker Tools

Docker is open sourcing developer tools used to facilitate standing up containers targeted for Windows and Mac platforms.

Docker Inc., said that it's open sourcing components of a beta project that it debuted in March, which opens the technology to developers targeting Mac and Windows platforms.

The tools lets developers expand the scope of Docker's container technology beyond its Linux origins, wrapping up code and dependencies in portable containers that can be run on any compatible host system. These containers can take advantage of the host OS's resources, allowing for smaller packages than can be obtained with more traditional virtual machine hypervisors.

Now, the specialized components developed to tackle Mac and Windows are available for anyone to use:

  • HyperKit: A lightweight virtualization toolkit on OSX.
  • DataKit: A modern pipeline framework for distributed components.
  • VPNKit: A library toolkit for embedding virtual networking.

"HyperKit is based around a lightweight approach to virtualization that is possible due to the Hypervisor framework being supplied with MacOS X 10.10 onwards," Docker developer Anil Madhavapeddy said in a blog post today announcing the open sourcing of the components. "HyperKit applications can take advantage of hardware virtualization to run VMs, but without requiring elevated privileges or complex management tool stacks."

"DataKit is a toolkit to coordinate processes with a git-compatible filesystem interface. It revisits the UNIX pipeline concept and the Plan9 9P protocol, but with a modern twist: streams of tree-structured data instead of raw text," Madhavapeddy said. "DataKit lets you define complex workflows between loosely coupled processes using something as simple as shell scripts interacting with a version controlled file-system."

"The VPNKit is a networking library that translates between raw Ethernet network traffic and their equivalent socket calls in MacOS X or Windows," Madhavapeddy continued. "It is based on the MirageOS TCP/IP unikernel stack, and is a library written in OCaml. VPNKit is useful when you need fine-grained control over networking protocols in user-space, with the additional convenience of being extensible in a high-level language."

Madhavapeddy also provided tips on how the components can be used beyond their original Mac and Windows use cases, along with advice about how interested community developers can contribute to further the technologies.

For HyperKit, for example, Docker identified three key areas ripe for community contributions: support for booting more guest OSes beyond Linux; support for more high-level language bindings; and hypervisor features.

Not much can done on DataKit, with only rudimentary GitHub pull request support, which itself could be improved. "DataKit could be used for a very broad set of use cases: share how you use it in your projects," Madhavapeddy said.

Needed contributions for VPNKit are more readily identifiable. "VPNKit provides an interception point for all container traffic going through Docker for Mac or Windows," Madhavapeddy said. "It could be extended with support for packet capture and inspection, protocol proxying to filter for particular traffic patterns, or even HTTP protocol visualization for debugging Web applications."

With more comprehensive support for endpoint types, he said, developers could use VPNKit to test network traffic without having to bother with providing their own test traffic. Also, he said, it could serve to provide simple overlay networks among application components.

"While the VPNKit and DataKit started life as quite specialized components in Docker for Mac and Windows, we are excited by the possibilities enabled by open sourcing them," Madhavapeddy said. "The ideas here are by no means exhaustive, and we are looking forward to hearing about your own projects. Please file issues in their respective bug trackers as you come across them, or if you wish to discuss a particular idea."

About the Author

David Ramel is an editor and writer for Converge360.

comments powered by Disqus


  • Blazor's Future: gRPC Is Key

    Blazor guru Steve Sanderson detailed what Microsoft is thinking about the future of the revolutionary project that enables .NET-based web development using C# instead of JavaScript, explaining how gRPC is key, along with a new way of testing and a scheme for installable desktop apps.

  • Don't Do It All Yourself: Exploiting gRPC Well Known Types in .NET Core

    If you're creating business services that send dates and decimal data then you may be concerned that gRPC services don't support the relevant data types. Don't Panic! There are solutions. Here's how to use them.

  • Sign

    Microsoft Points Blazor to Native Mobile Apps

    Blazor, the red-hot Microsoft project that lets .NET developers use C# for web development instead of JavaScript, is now being pointed toward the mobile realm, targeting native iOS and Android apps.

  • Circl

    Implementing State in .NET Core gRPC Messages with oneof

    In the real world, you've been dealing with the State pattern every time you designed a set of database tables. The Protocol Buffers specification lets you do the same thing when you define the messages you send and receive from your gRPC Web Service.

  • C#, .NET and SQL Server Make List of Top In-Demand Programming Skills

    Microsoft-centric technologies are featured prominently in a new examination of the top in-demand programming skills published by careers site

.NET Insight

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.

Upcoming Events