diff --git a/README.md b/README.md index 9b228a1a..ff85391c 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,45 @@ # Udemy Course Docker Mastery: with Kubernetes+Swarm from a Docker Captain -[![Lint Code Base](https://github.com/BretFisher/udemy-docker-mastery/actions/workflows/call-super-linter.yaml/badge.svg)](https://github.com/BretFisher/udemy-docker-mastery/actions/workflows/call-super-linter.yaml) -> Build, test, deploy containers with the best mega-course on Docker, Kubernetes, Compose, Swarm and Registry using DevOps - -This repository is for use in my Udemy Courses "Docker Mastery" and "Swarm Mastery" - -NOTE: As of July 2020 the new default branch is `main`, so please update your clone if you're still on `master` branch. - -Get these courses for with my "cheapest on the internet" coupon links: - -[bretfisher.com/courses](https://www.bretfisher.com/courses) - -My other DevOps and Docker resources are at [bretfisher.com/docker](https://www.bretfisher.com/docker) +> Build, test, and deploy containers with the best mega-course on Docker, Kubernetes, Compose, Swarm and Registry using a cloud native DevOps mindset + +This repository is for use in my Udemy Courses "[Docker Mastery](https://www.udemy.com/course/docker-mastery/?referralCode=1410924A733D33635CCB +))" and "[Swarm Mastery](https://www.udemy.com/course/docker-swarm-mastery/?referralCode=4927D9CB156D4AE0228C)" + +- Get these courses with my "cheapest on the internet" coupon links: [bretfisher.com/courses](https://www.bretfisher.com/courses) +- Get the [weekly newsletter](https://www.bretfisher.com/newsletter) on all the cloud native DevOps content I'm creating. + +## Course Sections + +1. Quick Start! + 1. [README](./intro/README.md) + 2. [Commands and Links](./references/S01%20Commands%20and%20Links.md) +2. Course Introduction +3. The Best Way to Setup Docker for Your OS +4. Creating and Using Containers Like a Boss +5. Container Images, Where To Find Them and How To Build Them +6. Container Lifetime & Persistent Data: Volumes, Volumes, Volumes +7. Making It Easier with Docker Compose: The Multi-Container Tool +8. Swarm Intro and Creating a 3-Node Swarm Cluster +9. Swarm Basic Features and How to Use Them In Your Workflow +10. Swarm App Lifecycle +11. Container Registries: Image Storage and Distribution +12. Docker in Production +13. The What and Why of Kubernetes +14. Kubernetes Architecture and Install +15. Your First Pods +16. Inspecting Kubernetes Resources +17. Exposing Kubernetes Ports +18. Kubernetes Management Techniques +19. Moving to Declarative Kubernetes YAML +20. Your Next Steps and The Future of Kubernetes +21. Automated CI Workflows +22. GitHub Actions Workflow Examples +23. Docker Security Good Defaults and Tools +24. Docker 19.03 Release New Features +25. DevOps and Docker Clips +26. Dockerfiles and Docker Images in 2022 +27. Dockerfile and Compose File Reviews +28. Extra's, Common Questions, and Resources Feel free to create issues or PRs if you find a problem with examples in this repository! diff --git a/references/S01 Quick Start.md b/references/S01 Quick Start.md new file mode 100644 index 00000000..161f0dd6 --- /dev/null +++ b/references/S01 Quick Start.md @@ -0,0 +1,32 @@ +# Quick Start! + +> Shell commands and reference links, per lecture + +## What is Docker? The Three Innovations + +- [Article of this lecture](https://github.com/BretFisher/udemy-docker-mastery/blob/main/intro/what-is-docker/what-is-docker.md) +- [Kubernetes vs. Docker](https://www.bretfisher.com/kubernetes-vs-docker/) +- [OCI Overview](https://opencontainers.org/about/overview/) + +## Quick Container Run + +- [Article of this lecture](https://github.com/BretFisher/udemy-docker-mastery/blob/main/intro/quick-container-run/quick-container-run.md) +- [Play with Docker](https://labs.play-with-docker.com/) +- [Docker Hub](https://hub.docker.com/) +- [Docker Official Images](https://docs.docker.com/docker-hub/official_images/) +- [Apache Official Image (httpd)](https://hub.docker.com/_/httpd) + +### Shell Commands + +```shell +docker version +docker run -d -p 8800:80 httpd +curl localhost:8800 +docker ps +docker run -d -p 8801:80 httpd +``` + +## Why Docker? Why Now? + +- [Article of this lecture](https://github.com/BretFisher/udemy-docker-mastery/blob/main/intro/why-docker/why-docker.md) +- [A Brief History of Containers](https://blog.aquasec.com/a-brief-history-of-containers-from-1970s-chroot-to-docker-2016) diff --git a/references/S14 Kubernetes Architecture and Install.md b/references/S14 Kubernetes Architecture and Install.md new file mode 100644 index 00000000..789cfeca --- /dev/null +++ b/references/S14 Kubernetes Architecture and Install.md @@ -0,0 +1,21 @@ +# Kubernetes Architecture and Install + +> Shell commands and reference links, per lecture + +## Kubernetes Architecture Terminology + +- [Kubernetes Components](https://kubernetes.io/docs/concepts/overview/components/) + +## Kubernetes Local Install + +- [Minikube Install](https://minikube.sigs.k8s.io/docs/start/) +- [MicroK8s Install](https://microk8s.io/#install-microk8s) +- [Install kubectl manually](https://kubernetes.io/docs/tasks/tools/#install-kubectl-on-windows) +- [Play-with-K8s in a browser](http://play-with-k8s.com) +- [Killercoda labs in a browser](https://killercoda.com/) + +## Kubernetes Container Abstractions + +- [Pods](https://kubernetes.io/docs/concepts/workloads/pods/) +- [Service](https://kubernetes.io/docs/concepts/services-networking/service/) +- [Namespaces](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) diff --git a/references/S15 Your First Pods.md b/references/S15 Your First Pods.md new file mode 100644 index 00000000..822c7707 --- /dev/null +++ b/references/S15 Your First Pods.md @@ -0,0 +1,35 @@ +# Your First Pods + +> Shell commands and reference links, per lecture + +## Our First Pod With Kubectl run + +- [Kubectl Cheat Sheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/) +- [Kubectl Commands for Docker Users](https://kubernetes.io/docs/reference/kubectl/docker-cli-to-kubectl/) + +```shell +kubectl version +kubectl version --short +kubectl run my-nginx --image nginx +kubectl get pods +kubectl get all +``` + +## Your First Deployment with kubectl create + +```shell +kubectl create deployment my-nginx --image nginx +kubectl get pods +kubectl get all +kubectl delete pod my-nginx +kubectl delete deployment my-nginx +``` + +## Scaling ReplicaSets + +```shell +kubectl create deployment my-apache --image httpd +kubectl get all +kubectl scale deploy/my-apache --replicas 2 +kubectl get all +```