We may earn an affiliate commission when you visit our partners.
Course image
Kris Celmer

Docker and Kubernetes are the Must-Have Skills for Python Enginner these days.

Read more

Docker and Kubernetes are the Must-Have Skills for Python Enginner these days.

Whether your focus is in Machine Learning & Data Science, or you use Python as General Programming Language, you must understand Docker & Kubernetes. Both form a basis of Modern Cloud Native Applications built in Microservices Architecture.

Quotes from selected course reviews:

  • "It covers pretty much everything you'd expect from enterprise project" [email protected]

  • "This course is absolute gold for data science and machine learning people because all Docker and Kubernetes courses out there focus on nothing but web applications. Thanks to the instructor for handling the concept of virtualization from a much needed different perspective. There are a lot of sources for learning ML and DS but skills taught in this course are what will make you stand out from the crowd." Mertkan Alacahan

  • "Spot on. Great depth yet very concise." Toby Patterson

  • "This is a deep deep deep dive in Docker with python. It is the complete course. Thanks for putting this together it is more than enough for what a need. I think watching the basic lectures and some selected topics I get what I needed and this became my docker reference guide if I need to solve a specific scenario. Thanks for putting this together. Highly recommend the course if you are a python developer." Pedro

In this Course you learn how to:

  • Develop and Explore Machine Learning & Data Science Jupyter Notebooks in Docker

  • Run Machine Learning Models in Production with Kubernetes and Docker Swarm

  • package your Python Code into Containers

  • publish your Containers in Image Registries

  • deploy Containers in Production

  • build highly modular Container-based Services in Micro-Services fashion

  • monitor and maintain Containerized Apps

You are going to become fluent and confident in using Docker Tools to create top-class Containers running your Python Code. You master Docker Runtime Tools like Compose and Swarm to run them. The Course also gives you sound knowledge and deep understanding of Kubernetes as the Application Platform. You gain confidence in Designing your Application to run on Kubernetes, as well as get deep knowledge of writing Kubernetes Object Declarations.

The Course is full of practical Exercises. There are over 40 GitHub Repositories full of Code Samples for the Course.

You can use the Course in two ways:

  1. If you use Python for Machine Learning & Data Science, go Top-Down: start with Section 7 to quickly gain practical Docker skills and use Sections 2 to 6 to dig deeper into specific Container Topics.

  2. If you want to use Python for Web Apps & Microservices, try Bottom-Up: use the Course in linear manner.

Start building Containers today.

Enroll now

What's inside

Learning objectives

  • Build container image with python application in it
  • Ship container images to docker hub and other container image registries
  • Run jupyter notebooks in docker
  • Use docker desktop for windows pro and macos
  • Use docker toolbox for windows home
  • Use docker machine to create virtual machines with docker software
  • Master dockerfile to automate container image build
  • Create custom container images from scratch
  • Use python official images
  • Design flask and django multi-container deployments
  • Automate multi-container deployments with docker compose
  • Containerize tensorflow models into microservices
  • Deploy complex, multi-container applications in docker swarm
  • Deploy complex, multi-container application in kubernetes
  • Use kubernetes with minikube on a development host
  • Use kubernetes in public cloud (using example of google kubernetes engine)
  • Kubernetes objects: pods, pod controllers: replicaset, deployment, job, cronjob, services, ingress, persistent volumes
  • Writing kubernetes object template files
  • Monitor and manage application in kubernetes
  • Execute containers with nvidia gpu acceleration
  • Show more
  • Show less

Syllabus

Introduction

This Lecture introduces Python in Containers Course. Course Agenda is discussed.

The Concept of Linux Containers
Read more
Containers Explained
Build, Ship, Run
Introduction to Docker
Ecosystem of Container Technologies
Introduction to Container Orchestration



Shipping the Image to Docker Hub
Running our App in Various Environments
Docker Deep Dive
Installing Docker for a Developer
Create Docker ID
Play with Docker
Install Docker on Ubuntu
Install Docker on CentOS
Docker on Linux - Security Warning
Docker Desktop on Windows Pro
Introduction to Windows Containers
Docker Desktop on MacOS
Docker Toolbox for Windows Home
Docker Desktop on Windows 10 Home with WSL2
Running Containers with Docker
Integrating Containers with a Host System
Container Images
Managing Containers
Running Multiple Containers
Container Networking
Data Persistency - Volumes
Dockerfile Introduction
Docker Hub Introduction
Python Base Images
Docker GUIs Part 1 - Kitematic
Docker GUIs Part 2 - Portainer
Docker Machine Overview
Docker Machine with VirtualBox
Docker Machine with Hyper-V
Docker Machine on AWS Cloud Hosts
Docker Machine on Google Cloud Hosts
Build Container Images

In this Lecture we look at all Components necessary to build a Container with Python Application.

In this Lecture we review a typical workflow of actions in lifecycle of Container with Python Application.

Key Design Principles of Containerized Python Application are reviewed in this Lecture.

Manual Image Build Process
Dockerfile - Automation of Image Build
Dockerfile Commands - Introduction and FROM
Dockerfile Commands - WORKDIR, COPY, ADD
Dockerfile Commands - RUN
Dockerfile Commands - ENV, LABEL, USER
Dockerfile Commands - VOLUME and EXPOSE
Dockerfile Commands - ENTRYPOINT and CMD
Parametrizing Dockerfiles with ARG
Building and Running Reusable Images
Build time versus Run time Execution
Building smaller Images
Multistage Image Build
Building Custom Python Images
Build Base Images from Scratch
Dockerizing PyTest and Pdb - Simple Case
Django Containerization for Development
Django Containerization for Production
Application Servers to Run Django and Flask
Production--grade Database Engine - PostgreSQL
Production--grade Database Engine - MariaDB
Implementing Proxy Server
The need of Automation
Ship Containers
Shipping Images
Image Registries and Repositories
Review of Key Cloud Registries
Review of Local Registry Technologies
GitHub and Docker Hub Integration
GitLab Container Image Build Workflow
Vulnerability Scanning of Images
Run Containers in Docker
Running Production Containers in Docker
Docker Compose - Introduction
Docker Compose File - Version and Volumes
Docker Compose File - Networks
Docker Compose File - Services
Managing Images with Docker Compose
Application Lifecycle with Docker Compose - Part 1
Application Lifecycle with Docker Compose - Part 2
Introduction to Docker Swarm
Provisioning Swarm with Docker Machine
Standalone Containers in Swarm
Services in Swarm
Service Modes and Ingress Routing Mesh
Application Stack in Swarm - Part 1
Application Stack in Swarm - Part 2
Application Environment in Swarm - Part 1
Application Environment in Swarm - Part 2
Application Lifecycle in Swarm
Summary of Docker Runtime Environment
Run Containers in Kubernetes
Introduction to Kubernetes
Helicopter View of Kubernetes as the Application Platform
Installing a Small Kubernetes Cluster
Running Simple Application in Minikube

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides robust and practical guidance on building, deploying, and managing Docker containers and Kubernetes applications specifically designed for Python engineers
Engages learners with real-world use cases and demonstrates the application of Docker and Kubernetes within a machine learning and data science context
Developed by industry expert Kris Celmer, ensuring the currency and relevance of the course content
Well-regarded within the Python community, garnering positive feedback from participants highlighting its practicality and applicability
Offers a comprehensive roadmap for learners, covering fundamental concepts to advanced Kubernetes deployment strategies

Save this course

Save Python in Containers to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Python in Containers with these activities:
Review Python Basics
Refresh your knowledge of Python basics to strengthen your foundation for the course, ensuring a smooth transition into more advanced concepts.
Browse courses on Python
Show steps
  • Review online tutorials or documentation on Python basics.
  • Solve practice problems or coding challenges to reinforce your understanding.
  • Consider taking a refresher course or workshop on Python.
Read Docker Deep Dive by Nigel Poulton
Gain a deeper understanding of Docker and its ecosystem to enhance your comprehension of the course material.
View Docker Deep Dive on Amazon
Show steps
  • Purchase or borrow a copy of 'Docker Deep Dive'.
  • Allocate dedicated time for reading, setting aside approximately two hours per session.
  • Take notes and highlight key concepts to aid in retention.
  • Engage in discussions with peers or online forums to clarify understanding.
Attend a Docker and Kubernetes Workshop
Accelerate your learning by attending a hands-on workshop focused on Docker and Kubernetes, providing practical experience and expert guidance.
Browse courses on Docker
Show steps
  • Identify and register for a reputable Docker and Kubernetes workshop.
  • Prepare for the workshop by reviewing basic concepts.
  • Actively participate in the workshop, asking questions and taking notes.
  • Implement the skills and knowledge gained in your own projects.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Create and Deploy a Python Application in a Docker Container
Solidify your understanding of Docker by building and deploying a Python application in a container, reinforcing the practical aspects covered in the course.
Browse courses on Containers
Show steps
  • Set up a Docker development environment.
  • Create a simple Python application.
  • Build a Docker image for your application.
  • Deploy the container to a cloud platform or local host.
  • Monitor and manage the container.
Follow a Kubernetes Tutorial Series
Supplement your understanding of Kubernetes by following a guided tutorial series, reinforcing the concepts covered in the course.
Browse courses on Kubernetes
Show steps
  • Identify a reputable tutorial series on Kubernetes.
  • Set aside dedicated time for working through the tutorials.
  • Follow the instructions carefully, taking notes and experimenting with the examples.
  • Troubleshoot any issues encountered during the tutorials.
Build a Microservices Application Using Docker and Kubernetes
Deepen your understanding of Docker and Kubernetes by building a real-world microservices application, leveraging the skills and concepts learned in the course.
Browse courses on Docker
Show steps
  • Design the architecture of your microservices application.
  • Create Docker containers for each microservice.
  • Deploy the microservices to a Kubernetes cluster.
  • Configure load balancing and service discovery.
  • Monitor and maintain the application.
Contribute to a Docker or Kubernetes Open Source Project
Enhance your understanding by contributing to an open source project related to Docker or Kubernetes, gaining valuable real-world experience and deepening your knowledge.
Browse courses on Docker
Show steps
  • Identify a suitable open source project on platforms like GitHub.
  • Review the project's documentation and codebase.
  • Identify an area where you can contribute, such as bug fixes or feature additions.
  • Submit your code contributions and engage with the project maintainers.

Career center

Learners who complete Python in Containers will develop knowledge and skills that may be useful to these careers:
Docker Captain
Docker Captains are community leaders who are recognized for their expertise in Docker and container technologies. This course in Python in Containers will help those who wish to become Docker Captains to build a strong foundation in containerization, as well as learn how to package and deploy Python code in containers.
Machine Learning Engineer
Machine Learning Engineers are responsible for the development and deployment of machine learning models. This course in Python in Containers may be useful for those who wish to become Machine Learning Engineers, as they will learn how to use Docker to build and deploy machine learning models.
Developer Advocate
Developer Advocates are responsible for bridging the gap between developers and the products they use. This course in Python in Containers will help those in this role to build a strong foundation in containerization, which has become an increasingly important technology for deploying and managing applications.
Software Architect
Software Architects are responsible for the design and architecture of software systems. This course in Python in Containers may be useful for those who wish to become Software Architects, as they will learn how to use Docker to build and deploy software systems.
Software Developer
Software Developers are responsible for the design, development, and maintenance of software systems. This course in Python in Containers may be useful for those who wish to become Software Developers, as they will learn how to use Docker to build and deploy software systems.
DevOps Engineer
DevOps Engineers are responsible for bridging the gap between development and operations teams. This course in Python in Containers may be useful for those who wish to become DevOps Engineers, as they will learn how to package and deploy Python code in containers, as well as how to manage containerized applications.
Web Developer
Web Developers are responsible for the design and development of websites. This course in Python in Containers may be useful for those who wish to become Web Developers, as they will learn how to use Docker to build and deploy web applications.
Full-Stack Developer
Full Stack Developers are responsible for both the front end and back end of a website or application. This course in Python in Containers may be useful for those who wish to become Full Stack Developers, as they will learn how to use Docker to build and deploy web applications, as well as how to manage containerized applications.
Systems Administrator
Systems Administrators are responsible for the maintenance and operation of computer systems. This course in Python in Containers may be useful for those who wish to become Systems Administrators, as they will learn how to use Docker to manage containerized applications.
Data Analyst
Data Analysts use their programming knowledge to help make sense of an organization's data. This course in Python for Containers may be useful for building the skills necessary for the role, including machine learning and data science using Jupyter Notebooks.
Data Scientist
Data Scientists use their programming knowledge to help extract valuable insights from data. This course in Python for Containers may be useful for building the skills necessary for the role, including machine learning and data science using Jupyter Notebooks.
Data Engineer
Data Engineers create and maintain the systems that store and process an organization's data. As the role is heavily reliant on programming, this course in Python in Containers could be useful, especially for those working with machine learning and data science.
Front-End Developer
Front End Developers are responsible for the design and implementation of the user interface of a website or application. This course in Python in Containers may be useful for those who wish to become Front End Developers, as they will learn how to use Docker to build and deploy web applications.
Technical Writer
Technical Writers are responsible for creating documentation for software and other technical products. This course in Python in Containers may be useful for those who wish to become Technical Writers, as they will learn how to use Docker to build and deploy documentation.
Product Manager
Product Managers are responsible for the planning and development of a product. This course in Python in Containers may be useful for those who wish to become Product Managers, as they will learn how to use Docker to build and deploy applications.

Reading list

We've selected seven books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Python in Containers.
Practical guide to working with Docker and its ecosystem, with a focus on developing real-world applications. It covers the fundamentals of Docker, as well as more advanced topics such as multi-container applications and orchestration.
Comprehensive guide to machine learning with Python. It covers the fundamentals of machine learning, as well as more advanced topics such as deep learning and natural language processing.
Comprehensive guide to designing and building microservices. It covers a wide range of topics, from architectural patterns to testing and deployment.
Hands-on introduction to Kubernetes, with a focus on how to use Kubernetes to manage containerized applications in production.
Comprehensive guide to machine learning with Python. It covers a wide range of topics, from the basics of machine learning to advanced topics such as deep learning and natural language processing.
Comprehensive guide to Deep Learning with Python. It covers in detail the key concepts of deep learning and it provides several hands-on examples.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Python in Containers.
Docker and Kubernetes: The Complete Guide
Most relevant
Docker Deep Dive
Most relevant
Docker & Kubernetes: The Complete Practical Guide
Most relevant
Managing Sitecore Docker Containers
Most relevant
Guided Project: Scaling Applications with Kubernetes
Most relevant
Handling Data and Stateful Applications in Docker and...
Most relevant
Guided Project: Scaling Applications with Kubernetes V2
Most relevant
Deploying Containerized Workloads Using Google Cloud...
Most relevant
Getting Started with Docker
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser