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 for Converge360.

comments powered by Disqus

Featured

  • Creating Reactive Applications in .NET

    In modern applications, data is being retrieved in asynchronous, real-time streams, as traditional pull requests where the clients asks for data from the server are becoming a thing of the past.

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

  • .NET 9 Preview 3: 'I've Been Waiting 9 Years for This API!'

    Microsoft's third preview of .NET 9 sees a lot of minor tweaks and fixes with no earth-shaking new functionality, but little things can be important to individual developers.

  • Data Anomaly Detection Using a Neural Autoencoder with C#

    Dr. James McCaffrey of Microsoft Research tackles the process of examining a set of source data to find data items that are different in some way from the majority of the source items.

Subscribe on YouTube