If you feel overwhelmed by the breakdown of technologies Docker is built on, here is a cheat list to ease the pain 🙂
Reading through Why we use Terraform and not Chef, Puppet, Ansible, SaltStack, or CloudFormation, you should see why immutable code is so powerful.
But I would not drop Ansible altogether…
Here are some rules to look into:
- Build it immutable – cause you can the scale easily, recover easily and have a consistent source for testing and deploying what you actually tested
- Use Terraform to create immutable infrastructure setup
- Use Packer to create images that can be deployed anywhere – AWS, GCE, Vagrant, Openstack
- Use Ansible to script changes on top of your images if needed. Ansible is not immutable by itself, but allows a cleaner reusable baseline to replace your scattered scripts
- In Ansible use modules before you script, and Roles before you duplicate earlier effort. Playbooks are your scripts replacement.
I remember how I felt years ago, when I had the first couple of Linux and Windows Virtual machines running in the lab. It was a great sense of freedom, from hardware limitations, from lost time and productivity. It was real Magic.
Then about 2 years ago, when Docker started its journey, it almost felt like black magic. The speed, the embedded versioning, the Freedom from the Operating system cage…
Looking at the new opportunities and energy at the recent DockerCon EU (2015), feels like a visit to Harry Potter’s Hogwarts castle. Anyway, enough with the story, let’s dig into some tech bits:
- Impressive focus on security, quality,scalability and stability (See the Keynote as well as this session)
- Docker Trusted Registry – Easy signing of your code using UBkey stick (a bit later AWS launched its own Docker registry service..)
- Remote revocation of signed code in case of compromise
- Nautilus- Automatic vulnerability scan of code that is uploaded into Dockerhub
- Internal Dockerhub on premise option including the secure code signing and Nautilus features
- Swarm cluster scales from 10 to 1000 nodes running 50,000 containers without any hiccups!
- Docker Universal Control plane – the dashboard for managing your docker swarm as well as on-the-fly secret data insertion and rotation, On-The-Fly insertion of specific Docker images across Swarm nodes.
- Docker Remote API that allows remote CLI, remote Compose and Docker Swarm
- Docker compose now
- Includes the network overlay system that automatically allows containers to find each other and applications merely call hostnames without worrying about name resolution
- Allows you to assign volumes to specific containers, which allows mixing of both persistent and non-persistent applications
- Started supporting seccomp for more granular Docker permissions as well as user namespaces which allows a process inside a container to “believe” it is running as root, while in fact it’s not
- Docker monitoring resources
- Docker tools
- Docker Bridge: Interlock, Registrator
- Service Registry: etcd, consul, zookeeper
- Template: Interlock, confd, consul-template
- Reverse Proxy: HAProxy, NGINX, Traefik
- Docker sidekicks – special containers that provide Service Discovery, HealthChecks and orchestration through a REST API. Examples include Amazon ECS Agents, AWS Beanstalk, COREOS, Docker Ambassador
- DCOS – The DataCenter Operating System – The Mesosphere Datacenter Operating System (DCOS) is a new kind of operating system that spans all of the machines in your datacenter or cloud. It provides a highly elastic, and highly scalable way of deploying applications, services and big data infrastructure on shared resources including AWS, GCP, Azure.
- Docker for Windows
- Will not run Linux images
- Same code base as Docker for Linux
- Requires Windows Server 2016
- Includes an abstraction layer between Docker and the Windows Kernel
- The Docker C:\Windows maps to \Global?\C:\Windows
- Contains all Windows device entry points including C: and \Registry, \Device\TCP
- Each container has its own “chrooted” devices
- File system is hybrid of UnionFS and NTFS: Virtual Block Device + NTFS partition per container Symlinks to layers on host FS
- Sundial – Rides on top of AWS ECS (Docker on AWS) and offers aggregation of Docker JOBS / ECS into processes with dependency tree graphical representation and central logging and control
- Great sessions you should NOT miss
If you were wondering how exactly does Native Docker for Windows Server look, you would love this Native Docker containers on Windows walk through done by Microsoft Channel9 Visual Studio podcast.
Here is what I loved about it:
- General yet very good explanation of what docker is all about and why should you care
- What does Native Docker for Windows look like (basically the host for containers is based on Windoes Core edition)
- Clarifying the confusion around the mixing of Linux Windows and Docker
- Live Demo of launching Windows Docker containers right from Visual Studio deploying the .NET application you develop and into Azure host
Got any other great Docker resources you want to share?
Checkout http://domeide.github.io …
They created IDE plugins for Docker, on the most popular development IDE tools (Sublime Text, Eclipse, Visual Studio and more)
That’s it. Docker won over Windows containerization as well!
Microsoft just announced it will add to its support for Linux VMs running Docker Linux Containers, support of Docker engine inside Windows Server and Windows Azure, to support native Windows containers,
More info here: Docker based Windows containers
This means you will be able to develop and support your Windows Apps within a slim agile-to-maintain container. What happens to licensing is one question, and what happens to security is definitely another worthy question.