Very important to highlight my progression through the stack.
- Dockerfile: I’ve used Dockerfies for a longtime for my projects, convenient to
- Docker-compose: Dockerfile alone was a little cumbersome. Docker-compose was really foreign to me, until I built an api that talked to mongo. at this point in time, I will use compose, even for a single container stack. It is also fair to note my favorite feature which is
linksallow me to link containers on the same machine/swarm, and reference them in my code via aliases.
- Docker Volumes: I’ve purposely avoided using volumes for high performance, writes. Had no problems doing reads though, I’d like to explore this avenue a little more. I have a ghost blog for instance that relies on the volumes heavily. It’s been an interesting challenge, in jekyll (this blog) everything is code based, so it’s deployment is similar to a Node project, deploy code, reload/rebuild the container vs ghost that is file based, all changes/upload made via ui needs to be saved, which makes the deployment interesting.
- Networks: I’ve simply not explored in depth. I find it sufficient to link containers, or run local service that tap into the containers.
- Swarm: My first attempt to clurster was using swarm, and it was a cumbersome and tricky to setup, but once complete it made total sense.
- Kubernetes: Although very enticed by the idea of pods, rolling updates, tags, the truth of the matter is, kubernetes is sort of like the gentoo of linux, it’s it’s own niche, which means a high learning curve to get started.
- Deployment with ansible. The modules for deploying containers to ansible are dirt easy, copy code, run compose up -d inside that folder, or use a full module.