Docker turns 7
Updated: Apr 17, 2020
Happy birthday little boy !
The traditional Docker Birthday Party occurred yesterday evening - March 26th, 2020 - on the YouTube channel as the #myDockerBday Live Show recorded in special conditions due to COVID-19 restrictions, but the presenters did a great great job even when kids were screaming and shouting behind them!
Docker actually turned 7 on March 12th.
This party is the occasion to interact with the community, but this is also - for the community - the opportunity to scrutinize the first steps of Docker since the acquisition of Docker Enterprise by Mirantis.
Docker Captains first give a few insights about the Docker roadmap - which is now public! No doubt that being more transparent will engage the community of developers to gather feedback, to test specific features with the Edge channels, etc.
It is noteworthy to mention interesting features such as the release of the official Docker Github Action, the vulnerability scan of images on Docker Hub, the rethink of the Compose format or the complete rewrite of docker-compose in Go.
Docker Desktop is getting a few new UI features for (Windows) beginners, but not only, with an integrated tutorial and the Container UI Dashboard. And there's still a lot of Docker new comers around the world, as many companies are just beginning or expect to begin their journey to Containers and Kubernetes!
The Container UI dashboard offers a very nice UI equivalent to "docker ps" and much more:
start, stop, restart, delete the containers
have one-click access to enter the container (docker exec -it) or to open published ports in the Web browser
inspect environment variables, mounts or exposed ports
watch the logs
check the stats about resources, which can really help developers define cpu and memory limits for Docker Compose or Kubernetes
With the recent announcement of WSL2, Windows users - currently only Windows Insiders - are able to code faster with Docker by working directly from the WSL2 distro using a bind-mount. As the HyperV layer and the SAMBA file system sharing disappear from the container landscape, there will be no more performance issues with the Windows File System... Developers will now be able to efficiently work on their Node and Angular projects with Docker on Windows workstations.
And... and... Docker Desktop will become available on the Windows Home edition, but only with Linux containers, as Windows containers is a Windows 10 Pro edition feature. Kids can now play with Docker!
The Docker team released a few weeks ago the official Docker Github Action which reduces the friction for deploying to Docker Hub.
GitHub Actions provides a CI/CD solution that integrates seamlessly into GitHub with already dozens of workflows steps (plugins) powered and shared by the Community.
Kubernetes on Docker Desktop
It's been almost 2 years since the introduction of Kubernetes into Docker Desktop, but it's interesting to remind some interesting capabilities.
Once Kubernetes - currently 1.15.5 on the stable channel - is enabled on Docker Desktop, a new context named "docker-desktop" or "docker-for-desktop" is available in the Kube config file.
sebfere@mac kube-demo % kubectx docker-desktop Switched to context "docker-desktop". sebfere@mac kube-demo % kubectl cluster-info Kubernetes master is running at https://kubernetes.docker.internal:6443 KubeDNS is running at https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
If you have experienced Docker Compose for a while, you may be grateful to the Docker team to let you translate your Compose file into Kubernetes resources, which is possible with the Kompose utility as well.
Using the voting sample app, you can deploy the Compose file to Kubernetes using docker stack. This will create Deployments and Services inside the bundled Kubernetes cluster using the LoadBalancer type for Services.
# create docker stack deploy --orchestrator=kubernetes --compose-file=voting.yaml voting-app # delete docker stack rm --orchestrator=kubernetes voting-app
In the end, it's pretty cool to see the Kubernetes deployment from the Docker dashboard.
I personally prefer going native over kind of technology bridge (.i.e using Kubernetes native resources instead of Compose for Kubernetes). Technology bridges tend to make the step smaller at first glance. In the medium term, irresistible limitations will turn the bridge experiment into a nightmare...
In the experiment of a Hybrid Kubernetes cluster, the last presentation involves the usage of headless services to point to Windows containers deployed outside of the cluster, by manually specifying the IP address in the Endpoint resource.
This was a great night - 17-20PM from my timezone - of sharing about Docker containers and Swarm / Kubernetes orchestration, without noticeable slowness on the Internet side ;)