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

  • Hands On: New VS Code Insiders Build Creates Web Page from Image in Seconds

    New Vision support with GitHub Copilot in the latest Visual Studio Code Insiders build takes a user-supplied mockup image and creates a web page from it in seconds, handling all the HTML and CSS.

  • Naive Bayes Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the naive Bayes regression technique, where the goal is to predict a single numeric value. Compared to other machine learning regression techniques, naive Bayes regression is usually less accurate, but is simple, easy to implement and customize, works on both large and small datasets, is highly interpretable, and doesn't require tuning any hyperparameters.

  • VS Code Copilot Previews New GPT-4o AI Code Completion Model

    The 4o upgrade includes additional training on more than 275,000 high-quality public repositories in over 30 popular programming languages, said Microsoft-owned GitHub, which created the original "AI pair programmer" years ago.

  • Microsoft's Rust Embrace Continues with Azure SDK Beta

    "Rust's strong type system and ownership model help prevent common programming errors such as null pointer dereferencing and buffer overflows, leading to more secure and stable code."

  • Xcode IDE from Microsoft Archrival Apple Gets Copilot AI

    Just after expanding the reach of its Copilot AI coding assistant to the open-source Eclipse IDE, Microsoft showcased how it's going even further, providing details about a preview version for the Xcode IDE from archrival Apple.

Subscribe on YouTube

Upcoming Training Events