Stone Door Group

View Original

Webinar | Docker Tips for Better Productivity

Overview 

Last month, Stone Door Group teamed up with Mirantis to deliver a free, 4-part series of one-hour workshops on various DevOps topics to sharpen your Docker and Kubernetes skills. Our first webinar focused on how to get Docker Enterprise running in 1 hour. 

Our second webinar in this series  “Docker Tips for Better Productivity” demonstrates ways administrators can gain an edge in their Docker administration. Topics include building efficient and lightweight containers, optimizing Docker networking, and ways to leverage the Docker API for automation.

We still have two more coming up in May, and we’d love to see you! 

Register here: https://www.stonedoor.io/docker-webinar

Links to Recordings

See this content in the original post

About the Presenter

Amber Ernst is a Docker Certified Associate and Docker Accredited Instructor for Stone Door Group, a Professional Docker Value Added Reseller. Amber is a Docker and Kubernetes expert who currently teaches all courses in Docker’s official training catalogue and is based in San Antonio, TX.

About Stone Door Group Docker CE to EE Accelerator

Our Docker CE-to-EE Accelerator℠ transforms your development instance of Docker CE into a compliant, enterprise container platform. We understand your developers’ passion for momentum, and your security team’s need for regulatory compliance. Our engagements increase the velocity of feature releases, while implementing operational, security, and regulatory requirements. For more information, drop us a line at letsdothis@stonedoorgroup.com.


The Following is a curated list of questions from the Q&A during our second webinar that contain information about Docker productivity.

I understand the idea of Docker ignore and removing compiling environments, is there a best practice around everything I should ignore? A reference architecture?

Yes, best practice is to keep it small, remove everything. You want as little in your images as possible. Whenever we build new images, we like to create a clean directory put all the assets that we need in the directory, and make sure that is all that is put into our image.
https://docs.docker.com/engine/reference/builder/#dockerignore-file

 

Do you have any guidelines for building ML/AI (Machine Learning/Artificial Intelligence) containers with GPU support? Currently, our containers are huge.

GPU support will be coming to soon, most likely in the next Enterprise release, so stay tuned for that update!

 

What is the best practice for container assignment in a swarm to ensure high availability? I would like to ensure instances are load balanced across different nodes in the swarm to ensure a node failure doesn’t take down my application.

You’re going to want to use a system of node labels. So what you can do is take your cluster and group your nodes into different physical availability zones. For example, you can label Rack A, Rack B, etc. that are grouped in a way that reflects common outages. Then when you create a swarm service you can specify that the containers for that service be must be distributed as evenly as possible across those label values.

So, if you have 2 available zones and you have a service with 10 replicas, then 5 will go to A and 5 will go to B. This was way if you have an entire rack that goes down, you still have services up and running.
https://docs.docker.com/ee/ucp/admin/configure/join-nodes/

What would be a good use case for container network namespace sharing - Sidecar? Are there good docker examples that do that?

Swarm doesn’t orchestrate sidecars well, or really at all. You can build that one container at a time, but that’s not a very scalable or maintainable option. So, if you want Sidecars, then it’s time to think about using Kubernetes.
https://docs.docker.com/engine/security/userns-remap/

https://kubernetes.io/docs/concepts/cluster-administration/logging/

 

Which of the tips covered in this Webinar are competitive differences on Docker EE in opposite to CE or other platforms like OpenShift, PKS, etc. ?

All tips that we covered in this Webinar are on the engine level and available on both Docker Community Edition and Docker Enterprise. DE is a good choice when you want support from Mirantis, or enterprise tooling- the UCP (Universal Control Plane) and the DTR (Docker Trusted Registry).

https://docs.docker.com/ee/supported-platforms/