The
Get Started with Docker Today
You'll be up and running with Docker in no time at all.
-
$39.99
$39.99The Docker Workshop
Unlock one year of full, unlimited access!
Learning Made Simple
Nobody likes going through hundreds of pages of dry theory, or struggling with uninteresting examples that don’t compile. We've got you covered. Any time, any device.
-
Learn by doing real-world development, supported every step of the way with step-by-step examples and expert screencasts.
-
Become a verified practitioner and earn an authenticated digital certificate from Packt upon successful completion.
-
Manage your learning based on your personal schedule, with content that lets you pause and resume your progress at will.
A Smarter Way to Learn Docker
A step-by-step, focused approach to getting up and running with real-world docker in no time at all.
Course Curriculum
An A to Z tour of Docker.
-
1. Running My First Docker Container
- Overview FREE PREVIEW
- Advantages of Using Docker FREE PREVIEW
- Docker Engine FREE PREVIEW
- Exercise 1.01: Running the hello-world Container FREE PREVIEW
- Managing Docker Containers FREE PREVIEW
- Exercise 1.02: Managing Container Life Cycles FREE PREVIEW
- Attaching to Containers Using the attach Command FREE PREVIEW
- Exercise 1.03: Attaching to an Ubuntu Container FREE PREVIEW
- Activity 1.01: Pulling and Running the PostgreSQL Container Image from Docker Hub FREE PREVIEW
- Activity 1.01: Pulling and Running the PostgreSQL Container Image from Docker Hub FREE PREVIEW
- Activity 1.02: Accessing the Panoramic Trekking App Database FREE PREVIEW
- Activity 1.02: Accessing the Panoramic Trekking App Database FREE PREVIEW
- Summary FREE PREVIEW
-
2. Getting Started with Dockerfiles
- Overview
- What Is a Dockerfile?
- Common Directives in Dockerfiles
- Exercise 2.01: Creating Our First Dockerfile
- Building Docker Images
- Exercise 2.02: Creating Our First Docker Image
- Other Dockerfile Directives
- Exercise 2.03: Using ENV and ARG Directives in a Dockerfile
- The WORKDIR Directive
- Exercise 2.04: Using the WORKDIR, COPY, and ADD Directives in the Dockerfile
- The USER Directive
- Exercise 2.05: Using USER Directive in the Dockerfile
- The VOLUME Directive
- Exercise 2.06: Using VOLUME Directive in the Dockerfile
- The EXPOSE Directive
- Exercise 2.07: Using EXPOSE and HEALTHCHECK Directives in the Dockerfile
- The ONBUILD Directive
- Exercise 2.08: Using ONBUILD Directive in the Dockerfile
- Activity 2.01: Running a PHP Application on a Docker Container
- Activity 2.01: Running a PHP Application on a Docker Container
- Summary
-
3. Managing Your Docker Images
- Overview
- Docker Layers and Caching
- Exercise 3.01: Working with Docker Image Layers
- Exercise 3.02: Increasing Build Speed and Reducing Layers
- Creating Base Docker Images
- Exercise 3.03: Creating Your Base Docker Images
- The Scratch Image
- Exercise 3.04: Using the Scratch Image
- Docker Image Naming and Tagging
- Exercise 3.05: Tagging Docker Images
- Using the latest Tag in Docker
- Exercise 3.06: Issues When Using latest
- Docker Image Tagging Policies
- Exercise 3.07: Automating Your Image Tagging
- Storing and Publishing Your Docker Images
- Exercise 3.08: Transporting Docker Images Manually
- Storing and Deleting Docker Images in Docker Hub
- Exercise 3.09: Storing Docker Images in Docker Hub and Deleting the Repository
- The Docker Registry
- Exercise 3.10: Creating a Local Docker Registry
- Activity 3.01: Build Scripts Using Git Hash Versioning
- Activity 3.01: Build Scripts Using Git Hash Versioning
- Activity 3.02: Configuring Your Local Docker Registry Storage
- Activity 3.02: Configuring Your Local Docker Registry Storage
- Summary
-
4. Multi-Stage Dockerfiles
- Overview
- Normal Docker Builds
- Exercise 4.01: Building a Docker Image with the Normal Build Process
- What Is the Builder Pattern?
- Exercise 4.02: Building a Docker Image with the Builder Pattern
- Introduction to Multi-Stage Dockerfiles
- Exercise 4.03: Building a Docker Image with a Multi-Stage Docker Build
- Dockerfile Best Practices
- Activity 4.01: Deploying a Golang HTTP Server with a Multi-Stage Docker Build
- Activity 4.01: Deploying a Golang HTTP Server with a Multi-Stage Docker Build
- Summary
- Survey I
-
5. Composing Environments with Docker Compose
- Overview
- Docker Compose CLI
- Exercise 5.01: Getting Started with Docker Compose
- Configuration of Services
- Exercise 5.02: Configuring Services with Docker Compose
- Service Dependency
- Exercise 5.03: Service Dependency with Docker Compose
- Activity 5.01: Installing WordPress Using Docker Compose
- Activity 5.01: Installing WordPress Using Docker Compose
- Activity 5.02: Installing the Panoramic Trekking App Using Docker Compose
- Activity 5.02: Installing the Panoramic Trekking App Using Docker Compose
- Summary
-
6. Introduction to Docker Networking
- Overview
- Exercise 6.01: Hands-On with Docker Networking
- Native Docker DNS
- Exercise 6.02: Working with Docker DNS
- Native Docker Network Drivers
- Exercise 6.03: Exploring Docker Networks
- Docker Overlay Networking
- Exercise 6.04: Defining Overlay Networks
- Non-Native Docker Networks
- Exercise 6.05: Installing and Configuring the Weave Net Docker Network Driver
- Activity 6.01: Leveraging Docker Network Drivers
- Activity 6.01: Leveraging Docker Network Drivers
- Activity 6.02: Overlay Networking in Action
- Activity 6.02: Overlay Networking in Action
- Summary
-
7. Docker Storage
- Overview
- The Container Life Cycle
- Exercise 7.01: Transitioning through the Common States for a Docker Container
- Exercise 7.02: Checking the Container Size on Disk
- Stateful versus Stateless Containers/Services
- Exercise 7.03: Creating and Scaling a Stateless Service, NGINX
- Exercise 7.04: Deploying a Stateful Service, MySQL
- Docker Volumes and Stateful Persistence
- Exercise 7.05: Managing a Volume outside the Container's Scope and Mounting it to the Container
- Exercise 7.06: Managing a Volume within the Container's Scope
- Exercise 7.07: Running a PostgreSQL Container with a Volume
- Exercise 7.08: Running a PostgreSQL Container without a Volume
- Miscellaneous Useful Docker Commands
- Exercise 7.09: Sharing Volumes between Containers
- Volumes versus Filesystem and Images
- Exercise 7.10: Saving a File on a Volume and Committing it to a New Image
- Exercise 7.11: Saving a File in the New Image Filesystem
- Activity 7.01: Storing Container Event (State) Data on a PostgreSQL Database
- Activity 7.01: Storing Container Event (State) Data on a PostgreSQL Database
- Activity 7.02: Sharing NGINX Log Files with the Host
- Activity 7.02: Sharing NGINX Log Files with the Host
- Summary
-
8. CI/CD Pipeline
- Overview
- What Is CI/CD?
- Exercise 8.01: Installing Jenkins as a Container
- Integrating GitHub and Jenkins
- Exercise 8.02: Uploading the Code to GitHub
- Exercise 8.03: Integrating GitHub and Jenkins
- Integrating Jenkins and Docker Hub
- Exercise 8.04: Integrating Jenkins and Docker Hub
- Activity 8.01: Utilizing Jenkins and SonarQube
- Activity 8.01: Utilizing Jenkins and SonarQube
- Activity 8.02: Utilizing Jenkins and SonarQube in the Panoramic Trekking Application
- Activity 8.02: Utilizing Jenkins and SonarQube in the Panoramic Trekking Application
- Summary
-
9. Docker Swarm
- Overview
- How Docker Swarm Works?
- Exercise 9.01: Running Services with Docker Swarm
- Troubleshooting Swarm Nodes
- Exercise 9.02: Deploying Your Swarm from Docker Compose
- Managing Secrets and Configurations with Docker Swarm
- Exercise 9.03: Implementing Configurations and Secrets in Your Swarm
- Managing Swarm with Swarmpit
- Exercise 9.04: Installing Swarmpit and Managing Your Stacks
- Activity 9.01: Deploying the Panoramic Trekking App to a Single-Node Docker Swarm
- Activity 9.01: Deploying the Panoramic Trekking App to a Single-Node Docker Swarm
- Activity 9.02: Performing an Update to the App While the Swarm Is Running
- Activity 9.02: Performing an Update to the App While the Swarm Is Running
- Summary
- Survey II
-
10. Kubernetes
- Overview
- Kubernetes Design
- Exercise 10.01: Starting a Local Kubernetes Cluster
- The Kubernetes API and Access
- Exercise 10.02: Accessing Kubernetes Clusters with kubectl
- Kubernetes Resources
- Exercise 10.03: Kubernetes Resources in Action
- Kubernetes Package Manager: Helm
- Exercise 10.04: Installing the MySQL Helm Chart
- Activity 10.01: Installing the Panoramic Trekking App on Kubernetes
- Activity 10.01: Installing the Panoramic Trekking App on Kubernetes
- Summary
-
11. Docker Security
- Overview
- Privileged and Root User Access in Containers
- Exercise 11.01: Running Containers as the Root User
- Runtime Privileges and Linux Capabilities
- Signing and Verifying Docker Images
- Exercise 11.02: Signing Docker Images and Utilizing DCT on Your System
- Docker Image Security Scans
- Exercise 11.03: Getting Started with Anchore Image Scanning
- Utilizing SaaS Security Scans with Snyk
- Exercise 11.04: Setting up a Snyk Security Scan
- Using Container Security Profiles
- Exercise 11.05: Getting Started with AppArmor Security Profiles
- seccomp for Linux Containers
- Exercise 11.06: Getting Started with seccomp
- Activity 11.01: Setting up a seccomp Profile for the Panoramic Trekking App
- Activity 11.01: Setting up a seccomp Profile for the Panoramic Trekking App
- Activity 11.02: Scanning Your Panoramic Trekking App Images for Vulnerabilities
- Activity 11.02: Scanning Your Panoramic Trekking App Images for Vulnerabilities
- Summary
-
12. Best Practices
- Overview
- Working with Container Resources
- Exercise 12.01: Understanding CPU Resources on Your Docker Image
- Managing Container Memory Resources
- Exercise 12.02: Analyzing Memory Resources on Your Docker Image
- Managing the Container Disk's Read and Write Resources
- Exercise 12.03: Understanding Disk Read and Write
- Container Resources and Docker Compose
- Best Practices in Docker
- Enforcing Docker Best Practices in Your Code
- Exercise 12.04: Linting Your Dockerfiles
- Exercise 12.05: Validating Your docker-compose.yml File
- Activity 12.01: Viewing the Resources Used by the Panoramic Trekking App
- Activity 12.01: Viewing the Resources Used by the Panoramic Trekking App
- Activity 12.02: Using hadolint to Improve the Best Practices on Dockerfiles
- Activity 12.02: Using hadolint to Improve the Best Practices on Dockerfiles
- Summary
-
13. Monitoring Docker Metrics
- Overview
- Monitoring Environment Metrics with Prometheus
- Exercise 13.01: Installing and Running Prometheus
- Monitoring Docker Containers with Prometheus
- Exercise 13.02: Collecting Docker Metrics with Prometheus
- Understanding the Prometheus Query Language
- Performing PromQL Queries
- Exercise 13.03: Working with the PromQL Query Language
- Using Prometheus Exporters
- Exercise 13.04: Using Metrics Exporters with Your Applications
- Extending Prometheus with Grafana
- Exercise 13.05: Installing and Running Grafana on Your System
- Activity 13.01: Creating a Grafana Dashboard to Monitor System Memory
- Activity 13.01: Creating a Grafana Dashboard to Monitor System Memory
- Activity 13.02: Configuring the Panoramic Trekking App to Expose Metrics to Prometheus
- Activity 13.02: Configuring the Panoramic Trekking App to Expose Metrics to Prometheus
- Summary
-
14. Collecting Container Logs
- Overview
- Introducing Splunk
- Exercise 14.01: Running the Splunk Container and Starting to Collect Data
- Getting Container Logs into Splunk
- Exercise 14.02: Creating an HTTP Event Collector and Starting to Collect Docker Logs
- Working with the Splunk Query Language
- Exercise 14.03: Getting Familiar with the Splunk Query Language
- Splunk App and Saved Searches
- Exercise 14.04: Getting Familiar with Splunk Apps and Saved Searches
- Activity 14.01: Creating a docker-compose.yml File for Your Splunk Installation
- Activity 14.01: Creating a docker-compose.yml File for Your Splunk Installation
- Activity 14.02: Creating a Splunk App to Monitor the Panoramic Trekking App
- Activity 14.02: Creating a Splunk App to Monitor the Panoramic Trekking App
- Summary
- Survey III
-
15. Extending Docker with Plugins
- Overview
- Plugin Management
- Exercise 15.01: Read-Only Docker Daemon with Authorization Plugins
- Network Plugins
- Exercise 15.02: Docker Network Plugins in Action
- Volume Plugins
- Exercise 15.03: Volume Plugins in Action
- Activity 15.01: Installing WordPress with Network and Volume Plugins
- Activity 15.01: Installing WordPress with Network and Volume Plugins
- Summary
-
16. What's Next for Docker
- Overview FREE PREVIEW
- The Docker Community Forum FREE PREVIEW
- Rubber Duck Debugging when Things Go Wrong FREE PREVIEW
- Working with the Docker Source Code FREE PREVIEW
- Exercise 16.01: Building the Docker Binary from Source Code FREE PREVIEW
- What the Future Holds for Docker FREE PREVIEW
- Introducing Docker App FREE PREVIEW
- Exercise 16.02: Creating and Running a Basic Docker App FREE PREVIEW
- Docker and IoT FREE PREVIEW
- Exercise 16.03: Working with Docker and IoT FREE PREVIEW
- Activity 16.01: Creating Your Own Development Branch for Docker FREE PREVIEW
- Activity 16.01: Creating Your Own Development Branch for Docker FREE PREVIEW
- Activity 16.02: Deploying the Panoramic Trekking App as a Docker App FREE PREVIEW
- Activity 16.02: Deploying the Panoramic Trekking App as a Docker App FREE PREVIEW
- Summary FREE PREVIEW
Join Over 85,000 Satisfied Students
Here is what they have to say about Packt workshops:
Amazing
Federico Patito
This course is excelent, with this course you learn a lot of topics and each topic has some exercises that are very u...
Read MoreThis course is excelent, with this course you learn a lot of topics and each topic has some exercises that are very useful.
Read LessVery detailed workshop with good excercises and activites
Ajijul Hakim Abid
Very good in-depth workshop in python. Goes over almost every topics but some topics could have a more detailed expla...
Read MoreVery good in-depth workshop in python. Goes over almost every topics but some topics could have a more detailed explanation. Would't recommend for someone totally new to programming.
Read LessGreat Introductory Course
mohammad nazeri
This course covers basic Python syntax, how to develop software in python, how to work in a team, and an introduction...
Read MoreThis course covers basic Python syntax, how to develop software in python, how to work in a team, and an introduction to data science and machine learning with Python.
Read LessAn excellent way to learn Python
Juan Alberto Cañero Tamayo
I like the methodology applied to this workshop, it starts from the basic and a good explanation of the subjects plus...
Read MoreI like the methodology applied to this workshop, it starts from the basic and a good explanation of the subjects plus a plenty of examples helps you to understand Python.
Read Less5 Stars for the content !
Mahesh Deshpande
I belong to mechanical background and started leaning any kind of programming in my life with this course. This is to...
Read MoreI belong to mechanical background and started leaning any kind of programming in my life with this course. This is too good for a beginner like me. The content is properly given and exercise and activities are also good. Video explainations help a lot ! The only problem I faced was the kernel busy problem in the Jupyter IDE. Otherwise I found Jupyter most user friendly as compared to other IDEs. Thanks Packt for this course !
Read LessThe most satisfying python workshop i ever attended!
Sanket Gadge
I have attended many python workshops, but this one is really great, the content is super awesome. Actually all the c...
Read MoreI have attended many python workshops, but this one is really great, the content is super awesome. Actually all the courses workshops i ever attended they never taught me (for ex. say logging) everything in python, but this workshop even covers the python from beginner to advanced. With activities included, this workshop made me think more and more rather than just going through the content and reading text and videos. I learned a ton here. Thank you for all the coaches who creating this extra ordinary content.
Read LessDATA SCIENCE Workshop
LALIT JADHAV
This course format and is very easily understandable. Workshop Certificate structure are very wonderful. Thanks a lot...
Read MoreThis course format and is very easily understandable. Workshop Certificate structure are very wonderful. Thanks a lot for Packt👈
Read LessExcellent course !!
Luiz Pellegrini
Very well structured, with good examples and a rational sequence !! An additional feature is that it is updated and d...
Read MoreVery well structured, with good examples and a rational sequence !! An additional feature is that it is updated and designed run on Jupyter Notebooks!!
Read LessCourse content
Edward Amankwah
The course presents a great way to data visualization techniques and it also opens up a lot of opportunities for data...
Read MoreThe course presents a great way to data visualization techniques and it also opens up a lot of opportunities for data scientist to explore their dataset before and after data modelling.
Read LessMany disciplines in Data Visualization
Thomas Hopf
Taking into account Python and therefore Jupyter Notebooks as a "platform" isn't a problem at all, since it's common....
Read MoreTaking into account Python and therefore Jupyter Notebooks as a "platform" isn't a problem at all, since it's common. Setting up by "cloning" a github repository was very easy. The toolboxes for visualization in focus are Matplotlib (famous), Seaborn, Geoplotlib. The order makes sense and in order to get Python basics pandas and numpy are also introduced first. Finally Bokeh is introduced as an interactive tool with no deep-dive but explaining the concept and options. At the end there will be a summary. The quizzes are not that easy in my opinion and you really should follow every topic and do the exersices, activities. Thanks for this perfect designed workshop course and the good example datasets. Greetz, Tommy
Read LessSimple and straight-forward intro
Geoffrey Letsoalo
The introduction is simple and very informative in terms of estalishing and getting the development environment going...
Read MoreThe introduction is simple and very informative in terms of estalishing and getting the development environment going. Very intuitive!
Read LessDifferent and made for people like me
Muizz Lateef
I have been watching tutorial videos for over 6 months now and not really confident yet, but few minutes into this te...
Read MoreI have been watching tutorial videos for over 6 months now and not really confident yet, but few minutes into this text approach and i am already getting the whole idea
Read LessExcellent Course Overall
Jon Hill
Had some familiarity with Python before starting the course and working through the exercises and activities, certain...
Read MoreHad some familiarity with Python before starting the course and working through the exercises and activities, certainly picked up some things that I had missed before and filled some gaps in my knowledge. Course needs a bit of proof-reading as a number of errors sprinkled throughout. Found the Activities needed a little more guidance rather than being vague but worked out in the end. Overall excellent course, especially for those beginning with Python as covers a full spectrum of Python requirements. Many thanks
Read LessReview for the Python Workshop
Samapriya Trivedi
This workshop provides one of the best educative content for the Python available on internet. Got to know a lot abou...
Read MoreThis workshop provides one of the best educative content for the Python available on internet. Got to know a lot about Python and it's working in a very elaborate manner.
Read LessLearning Python is Easier
Jayabalan Ravichandiran
Python concepts and using those in practice , made easier to know about python. Core concepts are explained in detail...
Read MorePython concepts and using those in practice , made easier to know about python. Core concepts are explained in detail . The activities enables to play & know python more than reading through only concepts . The Best of python course is here ....
Read LessReal Python lover... The Packt.
Jonty Rhodes
What can I say this website is very good for beginners. Although this website enhancing my programming experience al...
Read MoreWhat can I say this website is very good for beginners. Although this website enhancing my programming experience also. keep it up. May Allah bless you.
Read LessAttila Sebők's review
Attila Sebők
A Python Workshop kellemes meglepetés volt számomra. Tetszett a tema csoportosítása. Sokat tanultam a Workshopból. Am...
Read MoreA Python Workshop kellemes meglepetés volt számomra. Tetszett a tema csoportosítása. Sokat tanultam a Workshopból. Ami lehetne jobb: naprakész hibajavítás a leckékben és a tesztekben.
Read LessWonderful
Varun Kanthety
This is a wonderful course to dive deeply into the main features of JavaScript. Without any hesitation, I highly reco...
Read MoreThis is a wonderful course to dive deeply into the main features of JavaScript. Without any hesitation, I highly recommend this workshop to learn JavaScript.
Read LessGood course on JavaScript... Super Easy Language, Every e...
Kuntal Bhowmick
The Workshop is really good and covers a lot of content starting from basics till advance. The Workshop explain ho...
Read MoreThe Workshop is really good and covers a lot of content starting from basics till advance. The Workshop explain how things work by using simple language, so you don't feel like you're just copying code—you're actually understanding what you're writing, and why. In particular, I appreciate this JavaScript Workshop because of the exercise and the activities given for each and every concept. The workshop also show students how to problem-solve like a developer: what to type into Google when you're stuck, how to get to the bottom of an error message, etc. I think the understanding the core concept was very beneficial and think it would help me become a better developer in the future. Amazing breakdowns that really help fill in knowledge gaps. Great exercises with fully detailed explanations. I am satisfied with the course. I highly recommend this course to anyone who wants to learn JS(JavaScript). Edit: I want to add another thing. The quiz given after every section is very important. It gives me how much I understand the section. the quiz also displays the explanation of each answer along with whether my selected answer is right or wrong.
Read LessProgramming fundamentals
Oteri Eyenike
I was able to understand the conditional statement, data types, the object of properties and I like every aspect of t...
Read MoreI was able to understand the conditional statement, data types, the object of properties and I like every aspect of the course.
Read LessContent
Adedeji Adelanwa
It is quite informative and helpfully. A real refresher and eye opener for me. Though there are a few typos and sente...
Read MoreIt is quite informative and helpfully. A real refresher and eye opener for me. Though there are a few typos and sentence misplacement and also video. I don't mind helping out in correcting the errors
Read LessA must for those aiming to become true web developers
Jose B
Despite minor aspects with tests (the one focused on PHP), it is a very good way to teach yourself JavaScript coverin...
Read MoreDespite minor aspects with tests (the one focused on PHP), it is a very good way to teach yourself JavaScript covering the latest ECMA standards,
Read LessOne of the best place to learn
NAGA SANKARA SAI KARTHIK MUKKU
This workshop course is not a pack of subject but also helps in connecting real-world and also provide wide-range of ...
Read MoreThis workshop course is not a pack of subject but also helps in connecting real-world and also provide wide-range of concepts which make this workshop stand out of the box
Read LessGreat workshop
Djoko Cahyo Utomo Lieharyani
This workshop gives a provide broad insight into python, more to practical exercises and activities. There are some p...
Read MoreThis workshop gives a provide broad insight into python, more to practical exercises and activities. There are some problems tough, like some wrong script, redundant question, and no clear definition on some part (around 15% of 100% I guess), but the discussion part is helpful, coz sometimes with reading discussion part make some problem clear. My suggestion is to make the workshop perfect by validating the disscussion part.
Read LessExcellent!
Marcos Souza
I was very surprised by the quality of this course. Its well organized, full of examples on the subjects it is teachi...
Read MoreI was very surprised by the quality of this course. Its well organized, full of examples on the subjects it is teaching, relevant quizzes and exercises, and even videos. Its by far the best free course i've ever seen.
Read LessCourse content
Edward Amankwah
A great way to review the length and breath of Python language. It introduces more concepts that can be pursued furth...
Read MoreA great way to review the length and breath of Python language. It introduces more concepts that can be pursued further which I really like, especially for data science.
Read LessGet Verified
Complete The Docker Workshop to unlock your very own Packt certificate.
Take A Step Forward
There has never been a better time to get started with Docker.
-
$39.99
$39.99The Docker Workshop
Unlock one year of full, unlimited access!