Experimenting with different OS or software is good but we sometime wonder how to experiment without risking our original machine system. Thus, we can run OS like Ubuntu on Mac with Docker.
With docker, we will be able to run system in containers that will be isolated from your machine environment. Thus, experimenting inside a container will not affect the external environment unless it is configured to linked to the host machine.
Let’s drill in to the step to get your Ubuntu on Mac running.
Install “Docker Desktop for Mac”
First, we will install docker application into our Mac machines. Visiting the link below will bring you to a page to download the installer in dmg format.
Installing is as easy as dragging the file to the Applications folder and starting the application
Wait until your docker application is running. It will take a while if your machine is running other applications.
Get Ubuntu image from Docker Hub
There are different version of ubuntu docker image you can choose. For different versions, you can check out at this link. In this tutorial, we will install the bionic version which is ubuntu 18.04.
docker pull ubuntu:bionic
Run Ubuntu on Mac in container
To start a container running, we run the below command
docker run ubuntu:bionic
To check that the container is running and get the information, we run the below command
You should see some information like the ones below
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
febc92bf017f ubuntu:bionic "/bin/bash" 8 seconds ago Up 7 seconds condescending
Go into the container
To go into the bash environment of the container, we run the below command. Take note that the command needs to contain the name of the container.
docker exec -it condescending bash
After this step, you have entered into the ubuntu operating system. Feel free to do the things things that you want to try. If something doesn’t work out, we can destroy this container and restart from step 3 to launch a new container.
In conclusion, docker containers really helps us to have some form of environment that we can quickly launch and destroy. It gives more flexibility to experiment code or commands that we want to try without having to risk damaging our system.