
learn how docker and docker compose save time by turning a complex WordPress and Postgres setup into reusable images you can launch in minutes.
Learn to run a simple docker sample, see how the pieces work together, and follow step-by-step commands in upcoming classes to understand each step.
Learn to configure Docker settings, including startup options, update checks, resource allocation (cpu, memory, swap), file sharing, proxy, and experimental engine features, then apply changes and restart.
Learn to run your first Docker container with the Docker UI, create an image, start and stop the container, view logs, and access the app on localhost:80.
Understand how to pull and inspect a docker hub image, examine the dockerfile, and trace a multi-stage build—from python and node on alpine to a final nginx-based container.
Practical docker basics for developers: pull, run, name and manage containers, stop and remove them, list images and containers, and clean up to keep your system pristine.
Pull a MongoDB image from Docker Hub and run with port mapping 27017, connect to localhost:27017 to create a database and collection, then restart to observe persistence depends on volumes.
Map a local host folder to MongoDB's data directory to persist databases across container restarts, using docker run volume mapping and port forwarding.
Learn to dockerize a node express app, run it in a container, and map ports with volumes to serve files and reflect code changes.
Learn how to map container ports, demonstrating that multiple containers can run on the same host using different host ports while serving the same image.
Learn to set a container's working directory with the -w flag, start shells inside the image, and run apps from the mapped project directory where package.json lives.
Create your first dockerfile for a node express app, copy files, install dependencies, expose port 3000, and run via docker build and run.
Create a MongoDB container and connect it to a local Node app using the MongoDB driver installed via npm, then test the connection with a ping to the admin database.
Discover how the .dockerignore file prevents copying node_modules and secrets into your image, keeping builds clean and modules sourced from npm, and preventing container pollution.
Build and run a dockerized node application, link it to a Mongo DB container, and fix localhost networking by using the container name for a reliable connection.
Learn to create a docker bridge network, name it, and connect a Mongo container and a Node container to that network to enable a containerized app.
Fix legacy errors in the MongoDB driver by avoiding per-request reconnect and keeping the connection open, while rebuilding and running a docker image to apply changes.
Create a docker compose file to orchestrate a node and Mongo setup, defining version 3.7, networks, services, builds, and port mappings like 2000:3000 and 27017.
Build and start containers with docker compose, ensuring MongoDB is ready before the node service via depends_on. Rebuild on changes and monitor logs to confirm the connection.
Manage docker compose workflows with up, down, start, stop, and logs, learning how to view logs, see container status, and remove or recreate containers as needed.
Learn to replace hardcoded values with environment variables in a docker-compose setup, read those variables in a Node app, and rebuild and run the service to reflect changes.
Remove unnecessary networks and let Docker Compose create and manage a single internal network, ensuring services can communicate without explicit network declarations.
Scaffold the application by creating a docker project folder with separate front-end and back-end directories, initialize the React app with npm, and prepare the project for development.
Learn to commit code to GitHub by creating a new private repository, removing existing git tracking, and pushing the frontend and backend files with an initial commit.
Transition from npm to yarn in the project, clean up the backend setup, and install express with yarn to add the necessary dependencies for the server.
Build apps are not as simples as it uses to be. Today, your apps have to run in multiple environments (Mac, Windows, Linux), using a lot of different technologies (Redis, Mongo, Node, and so many others.
That is not all. It is the norm to expend days just to set up an environment right, to install all the dependencies and set all the environment variables, configure the connection, etc. And more often than not, after days of hard work when it is time to test the app it does not work, and when we ask for help the creator of the document he will say probably say "But it works on my machine!"
This course put an end on this. I will teach you how to use Docker so you can efficiently build apps that run smoothly and consistently across any machine, that you will be able to run in any device with Docker from zero to no time down.
We will build together many images and containers, step by step, from scratch and by the end, we will have a fully functional application using not 1 or 2 containers but 4. And we will be able to start it all (a reverse proxy, a React application, a Node application and a MongoDB) using just one command.
We will create a NIGIX container as a reverse proxy that will forward a request to React application running in another Docker container and/our Node application running in yet another Docker container depending on the request URL. Also, your Node application will be able to request and save data on our fourth container running MongoDB.
We will focus on the development environment first, and by the end, we will learn how to step up our game for production, creating leaner and safer images.
I'll be with you every step the way. We will code together line by line, and I'll even show how to set up your environment like mine. Hence, it is easier for you to follow and find any problem you may have, still, if you don't, that is fine too, I'm always available to answer any questions you have along the journey.
We will build a more advance app by each class, adding new container as need and learn new ways to make our job more comfortable as we go.
We will start learning about the Docker CLI and pushing images from Docker Hub and creating containers with those images.
Later we will add ports and volumes to the images we used on the step before.
Then we will learn how to create our images using Dockerfiles.
This is when things start to get more interesting, we will create networks between multiple containers, so for example, our Node container will be able to communicate with our MongoDB container.
However, soon we will find out that manage a lot of containers using the CLI is not an easy job, that is when we will learn about Docker Compose.
Docker Compose is fantastic, but why to stop there, Kubernetes of K8's is the next natural step to learn, it will make scaling and deploying a breeze, so it is a MUST for this course too.
After you finish this course, you can be sure that you will increase your productivity, creating lightweight applications that run the same no matter the environment with setups that takes no time.
So no more "Works at my machine" or 14 pages documents to set up environments that never works, let Dockerize and be happy and productive,
See you in the course