Up until the last Docker update (Docker 3.0.3) or the latest MacOs update (Big Sur) or IntelliJ (2020.3 ultimate), changing a file in the IDE resulted in immediate visibility of the changes in the file on the Kubernetes pod in the Docker VM. In-built Single Node Kubernetes Cluster; Docker Desktop is an easy-to-install application for your Mac or Windows environment that enables you to start coding and containerizing in minutes. Docker Desktop includes everything you need to build, test and ship containerized applications right from your machine.
MacStadium's Orka brings modern, orchestration and containerization solutions Kubernetes and Docker to Mac-specific CI. We understand that most native iOS and macOS developers have likely not had much exposure to these powerful tools, as they have historically not been able to run on Mac. But that has all changed with the introduction of Orka. Now, teams that focus on dev for iOS and macOS have access to this powerful tech.
Docker has emerged as the dominant containerization solution in the software world. It is so popular because it offers coherence between the respective development and production environments for a given project. This means that the same code will run regardless of where it is physically because Docker provides a constant environment across machines in which to run code. Historically, to achieve a similar outcome, teams have used VMs (virtual machines). However, while an excellent choice for many applications, VMs are inherently complex, and thus present a greater technical debt for the average team to overcome. Conversely, Docker containers are relatively simple to manage and require less overhead to run.
Kubernetes is the leading, open-source, orchestration engine for managing multiple containers, such as those that Docker provides. Kubernetes provides a framework to run distributed systems – i.e. those that are bundled up into a series of containers – resiliently. It isn't just for production, though. Kubernetes is an excellent tool for managing containerized code that needs to be run in concert with other containers. In short, it just makes life easier.
Containerization – the practice of isolating code in a known and preservable environment, so as to ensure it will run as intended anywhere it ends up.
Orchestration – the practice of coordinating multiple computational resources for a common high-level purpose, although they may not all be doing the same work, but rather sub-portions of the same whole.
Node – distributed systems work in different ways, but inevitably there is the concept of a series of computational resources that are doing the work, naturally enough these are called “nodes,” “workers,” and sometimes “slaves” as well. In Orka, a node is a single, physical Mac Pro within the greater cluster. Kubernetes then facilitates communication between the various nodes, and further, the various Docker containers housed within a given node.
Image file (*.img) – a configuration file that defines a VM, complete with its own operating system. These are commonly used to re-make a given environment time and again for the sake of consistency during continuous integration (CI).
Orka Docs – Kubernetes Reference is a nice overview of Kubernetes features and functionality. Particularly helpful in sussing out the nuances of using Kubernetes on a Mac.
The Children’s Illustrated Guide to Kubernetes – a fun, easy, informative introduction to guiding principles of Kubernetes.
An Introduction to Kubernetes, by Justin Ellingwood, is a great bet if you’re ready to get started with Kubernetes in earnest, and you are looking for a stepping off point.
The Kubernetes Docs – the ultimate source of truth for all things Kubernetes.
Estimated reading time: 4 minutes
Docker Desktop for Mac is the Community version of Docker for Mac.You can download Docker Desktop for Mac from Docker Hub.
By downloading Docker Desktop, you agree to the terms of the Docker Software End User License Agreement and the Docker Data Processing Agreement.
Your Mac must meet the following requirements to successfully install Docker Desktop:
Mac hardware must be a 2010 or a newer model with an Intel processor, with Intel’s hardware support for memory management unit (MMU) virtualization, including Extended Page Tables (EPT) and Unrestricted Mode. You can check to see if your machine has this support by running the following command in a terminal: sysctl kern.hv_support
If your Mac supports the Hypervisor framework, the command prints kern.hv_support: 1
.
macOS must be version 10.14 or newer. That is, Mojave, Catalina, or Big Sur. We recommend upgrading to the latest version of macOS.
If you experience any issues after upgrading your macOS to version 10.15, you must install the latest version of Docker Desktop to be compatible with this version of macOS.
Note: Docker supports Docker Desktop on the most recent versions of macOS. Docker Desktop currently supports macOS Mojave, macOS Catalina, and macOS Big Sur.
As new major versions of macOS are made generally available, Docker stops supporting the oldest version and support the newest version of macOS.
At least 4 GB of RAM.
VirtualBox prior to version 4.3.30 must not be installed as it is not compatible with Docker Desktop.
The Docker Desktop installation includes Docker Engine, Docker CLI client, Docker Compose, Notary, Kubernetes, and Credential Helper.
Double-click Docker.dmg
to open the installer, then drag the Docker icon to the Applications folder.
Double-click Docker.app
in the Applications folder to start Docker. (In the example below, the Applications folder is in “grid” view mode.)
The Docker menu in the top status bar indicates that Docker Desktop is running, and accessible from a terminal.
If you’ve just installed the app, Docker Desktop launches the onboarding tutorial. The tutorial includes a simple exercise to build an example Docker image, run it as a container, push and save the image to Docker Hub.
Click the Docker menu () to seePreferences and other options.
Select About Docker to verify that you have the latest version.
Congratulations! You are now successfully running Docker Desktop.
If you would like to rerun the tutorial, go to the Docker Desktop menu and select Learn.
Starting with Docker Desktop 3.0.0, updates to Docker Desktop will be available automatically as delta updates from the previous version.
When an update is available, Docker Desktop automatically downloads it to your machine and displays an icon to indicate the availability of a newer version. All you need to do now is to click Update and restart from the Docker menu. This installs the latest update and restarts Docker Desktop for the changes to take effect.
To unistall Docker Desktop from your Mac:
Note: Uninstalling Docker Desktop will destroy Docker containers and images local to the machine and remove the files generated by the application.
You can use the following procedure to save and restore images and container data. For example to reset your VM disk:
Use docker save -o images.tar image1 [image2 ...]
to save any images you want to keep. See save in the Docker Engine command line reference.
Use docker export -o myContainner1.tar container1
to export containers you want to keep. See export in the Docker Engine command line reference.
Uninstall the current version of Docker Desktop and install a different version (Stable or Edge), or reset your VM disk.
Use docker load -i images.tar
to reload previously saved images. See load in the Docker Engine.
Use docker import -i myContainer1.tar
to create a filesystem image corresponding to the previously exported containers. See import in the Docker Engine.
For information on how to back up and restore data volumes, see Backup, restore, or migrate data volumes.