The Docker platform is portable because it's written in Go, which is a cross-platform language. Go applications can be compiled into native binaries, so Docker can run on Linux or Windows without users having to install Go. On Docker Hub there is an official image which contains a registry server written in Go, so you can host your own image registry by running a Docker container from that image.
registry is an official repository which is maintained by the Docker team, but at the time of writing it only has images available for Linux. It's likely that a Windows version of the registry will be published soon, but in this chapter I will walk you through building your own registry image, as it demonstrates some common Docker usage patterns.
Official repositories are available on Docker Hub like other public images, but they have been curated...