News

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 at Converge 360.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube