Docker Crash Course for Absolute Beginners [NEW]
Vložit
- čas přidán 20. 05. 2024
- Docker Tutorial for Beginners that teaches you everything you need to get started
💛 Connect on Instagram ► bit.ly/2F3LXYJ
💛 Connect on LinkedIn ► bit.ly/3hWOLVT
💙 Full Docker course ► • Docker Tutorial for Be...
💚 Docker in complete DevOps process ► bit.ly/42ZMSiR
#docker #dockertutorial #techworldwithnana
► This video is sponsored by Nethopper 🙌🏼
► Learn more about Nethopper KAOPS here: www.nethopper.io/
Learn the basic building blocks of Docker in an easy and understandable way.
By the end of this Docker tutorial, you will have a deep understanding of the concepts and a great overall big picture of how Docker is used in the whole software development process.
The course is a mix of animated theoretic explanation and hands-on demos to follow along, so you get your first hands-on experience with Docker.
🔗 Links
► Git Repo for this tutorial: gitlab.com/nanuchi/docker-in-...
► Download and install Docker: docs.docker.com/get-docker/
▬▬▬▬▬▬ T I M E S T A M P S ⏰ ▬▬▬▬▬▬
0:00 - Intro and Course Overview
02:54 - What is Docker?
03:51 - What problems Docker solves in development and deployment process
11:38 - Virtual Machine vs Docker
17:19 - Install Docker
21:36 - Docker Images vs Containers
26:32 - Docker Registries
29:38 - Docker Image Versions
32:02 - Main Docker Commands - Pull and Run Docker containers
39:06 - Port Binding
42:50 - Start and Stop containers
46:54 - Private Docker Registries
48:11 - Registry vs Repository
49:09 - Dockerfile - Dockerize Node.js app
58:30 - Build Image
1:02:39 - Docker UI Client
1:03:39 - Overview: Docker in complete software development lifecycle
1:06:38 - Where to go from here
▬▬▬▬▬▬ Want to learn more? 🚀 ▬▬▬▬▬▬
Full Python course ► • Python Tutorial for Be...
Full Docker course ► • Docker Tutorial for Be...
Full K8s course ► • Kubernetes Tutorial fo...
DevOps Tools explained ► bit.ly/2W9UEq6
▬▬▬▬▬▬ Connect with me 👋 ▬▬▬▬▬▬
Join private FB group ► bit.ly/32UVSZP
INSTAGRAM ► bit.ly/2F3LXYJ
TWITTER ► bit.ly/3i54PUB
LINKEDIN ► bit.ly/3hWOLVT
▬▬▬▬▬▬ Courses & Ebooks & Bootcamp 🚀 ▬▬▬▬▬▬
► Become a DevOps Engineer - full educational program 👉🏼 bit.ly/45mXaer
► High-Quality and Hands-On Courses 👉🏼 bit.ly/3BNS8Kv
► Kubernetes 101 - compact and easy-to-read ebook bundle 👉🏼 bit.ly/3Ozl28x
First time in my life watching something related to Docker. Understood everything. Put it into practice on my own project. Absolutely outstanding tutorial. Best there is by light years!
I'd never run into your channel before. I've been in tech my entire career, and while I've bene familiar with Docker in the abstract, I simply haven't had a pressing need until now. I'd played with it years back, but then hadn't touched it. This video was the perfect recap to both remind me of what I'd learned before and to fill in a couple of gaps that I hadn't even known I had. Thanks very much!
Wow, I can't believe it! I learned Docker in one hour. You are amazing!
I am speecheless...I knew nothing about Docker an hour ago and here am I already creating my own images and running them inside containers. What a tutorial!!!!!!!! Thanks a ton Nana. I had to hit that Subscribe button! 🙏🔥
That's amazing, welcome to my channel! :)
This is the best crash course I have seen on Docker. In 1 hour I was able to fully understand the basics that I have struggled with for a while. Thanks Nana!
I'm a long time follower of your channel, and love the way you teach. There are a lot of very talented instructors here on CZcams, and I appreciate every one of them. What sets you apart from the rest is that you explain even the little details that everyone else glosses over, for example, " -it means interactive terminal " . That one little detail made learning k8s so much easier! Please keep up the great work!
I have watched around 5-7 "beginner" tutorials on Docker, but none came even close to the comprehensiveness of this tutorial. This tutorial clarifies thoroughly the fundamentals of Docker at a perfect pace! Forever in your debt! :D
when she explain what VM is compare to docker, and what docker Desktop basically run a Linux VM, everything just make sense now 😀
An outstanding tutorial. All the main important moments are clearly explained and shown in practice in just an hour - a really great work!
10/10 👍
Definitely the best Docker introduction I've seen so far.
This was such a great course. It gave me everything I needed to no feel overwhelmed when getting started using docker. Thank you so much for making this free, it looked like it took a lot of effort to put it together as it is present so well.
Honestly this is the best and most up to date Docker crash course. It def gave me everything I needed for an upcoming project. It de-mystified all the jargon and everything is explained step by step in a good progression. I'll be checking out your online courses! Thank you so much for providing this!
This is so much better than any of the other Docker videos I tried. This is the minimum amount of info needed, love it! Any tutorial with less information is leaving out something essential.
Hi! I have been working towards my A+, and plan to go for CCNA after that. In the mean time as part of a homelab I wanted to create some minecraft servers using docker. I was quite overwhelmed, but your video is amazing! You explain each part and not just "show me how". I look forward to watching other videos of yours. Just want to say TYSM!!
Nana your courses are so awesome. I really appreciate your pacing and in-depth explanation. I've not had the opportunity to work much with containers professionally, and your tutorials are really helping me out as I implement them first in my home lab, and later at my job. Your hard work is appreciated!
this course is gold! been postponing learning how to use docker and you made it simple to learn and how it works behind the scenes. Thanks for doing this!
Thanks for all the effort you've put on this video, Nana. It's super well made and helpful!
A great introductory course. Simple and concise.
Slight correction for the Dockerfile section of the video.
- *The commands in a dockerfile are not RUN/MAPPED in the container, only while BUILDING the image.*
- _If it were, spinning up new containers would take longer as dependencies would have to be installed for each new container._
- Building a Docker image creates an object (the final layer) which specifies folder structures and contains all the necessary files i.e. base image files, installed package files, your program code and all other artifacts created as a result of the instructions in your Dockerfile.
- Running the image creates a process (the container) to manage an ISOLATED instance with a folder structure and content continuing from where the image ended i.e. "run your code".
This is why 2 containers based on the exact same image may have different contents at run time depending on what your code is doing to the file system: docker exec [ContainerId] ls .
These underpin why a basic knowlege of Linux (file system and commands) is usually advised before learning Docker.
The best Docker Crash course I have seen till date , thoroughly enjoyed it. I have more than a decade experience in IT and I can safely say your way of teaching inspires me. Keep it up Nana, keep uploading more tech videos like this !! :)
Will definitely do, appreciate your amazing feedback! :)
This is an incredible video, an exemplar display of both technical and pedagogical competence.
The animations are on point too, and combined with your way of exposing the whole learning process becomes so lightweight and pleasurable. Thank you for real 💎
This is one of the best docker beginner tutorial. Amazing easy to understand tutorial with simple explanations with animations and live demo. Thanks Nana
Definitely the best resource available to the field
Thanks for the feedback David, really happy to hear! 😊
Do you guys have tutoring programs for beginners???
You are by far the easiest follow on CZcams. You are clear, efficient and energetic. Thank you for not being a dud 😊.
I have never done or used docker in the past, but, I have been wanting to learn. Now I am motivated to go deeper into this subject. Great Job!!!!
Been in industry for 2 decades. These 1 and 4 hours courses are a boon for a large segment of population. Thanks a lot !
What an explanation. Just amazing. I have an interview tomorrow, and this one-hour video cleared all my doubts. Thank you so much for this.
Your explanations and animation graphics make learning so much fun. Thanks for doing so much for the community 👏🏻🙏🏻
Thanks for appreciating our efforts, means a lot! 💙
indeed , there is a strong correlation between explanations and animations .
But the audio could use some help. A little work toward reducing the echo would go a long way.
@@NetBandit70 it works just fine on my end.
@@TechWorldwithNana Can we get the slides Just for Quick Refresher whenever we go before interview
That was awesome! Thank you for taking out time and creating this gem. I always struggled with Docker, but this video is super easy and you explained everything perfectly. Thank you Nana.
The way you teach is beyond words. Thank you for touching the topic from the basic and covering all the aspects along!!
You're the first person I found that managed to explain what a container actually is and what it does in a way that's clear.
This video should be the definition of crash course is.
Explanations are clear and easy to understand. I tried many times to learn Docker concepts but I succeeded this time. Thanks for the great explanations
This is the best tutorial I could find so far that well answer the WHYs and WHATs questions in my head. Clear explanation and visualization. Many thanks!!
The absolute finest introduction to Docker on CZcams, period. Thank you kindly for sharing your knowledge.
Absolutely Amazing crash course and love the way you've gone in to detail but just enough to get the flow moving and to cover such a huge topic in one hour. Thank you. Sadly, one key are many doing such tutorials seem to skim over is the concept of how the tool/application applies to the real world/SD lifecycle. This was attempted at 1.03 in the video but again, skimmed over I presume to keep the video to 1 hour however, I hope @Nana can take this feedback onboard and spend that last 10 minutes really showing how the tool/application is utilised in real world DEVOPS environments with examples. Aside from this, the key concepts within such a short video are clearly explained and a huge thank you once again for the hard work! Mo
Thanks for your great feedback! As mentioned in the video, I actually cover real world DevOps projects, examples and demos in our DevOps bootcamp.
@@TechWorldwithNana❤
I have been out of the development world for about a decade. This video was SUPER helpful in updating my brain to the current day about application virtualization. THANK YOU so much for creating this excellent presentation.
Just curious...were you away from IT completely for those 10 years? (I notice many people leave IT for a while and come back)
WOW Nicely done! I looked several tutorials and docs and this is the first time I really understand the difference between docker containers and VMs! You are a great teacher
Great video! I love how you break everything down so well. I have only watched a few minutes but I am already getting things I kind of understood but not fully.
Very well explained - you have a great ability to convey information in plain, easy to understand terms. I didn't understand Docker before watching this but you totally demystified if for me! Thanks - Subscribed!
It helped a lot for beginners like me. The way you teach and explain through animations makes it understandable for all. Stay blessed ever ameen
Thank you ALOT! i needed this. for the past 3 years i have postponed learning docker because i thought it was difficult. You explain it very well !
Only tutorial i've ever watched. ive tried watching over like 10 this one had me hooked from the start. easy explanation- anyone doubting keep watching i learned a lot
Simply the best channel for learning CN tools.
This is EXACTLY what I needed. Clear, with perfect balance between theory and practice. Thank you so much!
Thanks for the feedback, appreciate it! :)
This tutorial is just awesome! I was struggling to build the whole Docker picture in my head, but this video just rock it! Thank you!
Brilliant job of explaining this. The examples were realistic, the graphics were clear and helpful, and the pace was just right. Thank you!
The best video I have got on youtube for docker.
One of the best courses with very clear explanation and animation. Appreciate it.
Your videos have been extremely helpful and informative. Appreciate for the effort and dedication you put into creating them. Thank you so much!
👏👏🙏
What a great video, what a great tutorial. Congratulations. I've spent time trying to understand the fundamentals of Docker on other YT channels, but none of them explains that well. Thank you so much. I've subscribed and will work on your other videos!
You are one of my favorite humans ever!
Awesome, you make tech so simple. Thank You so much
I'm taking a DevSecOps class that touched on Docker, but I'm 13 minutes into this video and it's already clarifying some holes in my understanding. Thanks so much... I'm really looking forward to checking out your other videos.
Thank you for making this video. I've been waking up very early every morning to take your classes and have improved my skills. Knowledge is worth more than gold so you have done a great service. Also, I call my grandmother Nana and she is the coolest lady in the world.
Nana is always on point
As always, the best explanation. Thank you for making such a wonderful crash course.
Thank you Vipin, glad you liked the crash course :)
Thank you Nana for this great intro tutorial. I am a complete newbie to Docker and after watching your video I think I understand docker pretty well. Thank you once again!
I've recently been learning more about Docker by taking courses and reading documentation, and honestly this whole video has been so helpful. Thank you!
I can tell how much work was put into creating this video. The information and presentation are both of very high quality. Will be subscribing for more :)
Thanks for your appreciation Rozeta and happy we won a new subscriber :)
Great job a always Nana and Nicole
Enough information to be able to have a sensible discussion with IT. The most helpful tutorial I've ever used!
This is excellent work !
So much clarity in teaching tells us how strong you're technically.
Thank you for doing this.
God bless you
That was awesome explanation . Thanks a lot Nana. No other crash course matches with this 👏👏👌👌
Thanks Prasad, really happy to hear! :)
First to comment. Thanks for everything you do for the community ❤
I just want to say THANK YOU VERY MUCH! This was such a straightforward tutorial !
Thank you so much for your charitable contributions Nana. The growing count of Subscribers you have speaks volumes as to the appreciation your audience has for you.
Thank you Nana - very helpful informative!
My pleasure Anthony :)
Here are all of the commands - plus a few more I read about online:
docker commands
---------------
Here are some commonly used Docker CLI commands:
docker ps
Lists all running Docker containers.
If you want to see all containers (not just running), use `docker ps -a`
docker pull [image name]:[tag]
Downloads a Docker image from Docker Hub
docker images
Lists all Docker images that you have locally
docker run [image name]:[tag]
run a Docker container from a Docker image.
You can specify the image either by its name or ID.
DETACH
docker run -d [image name]:[tag]
runs in detached mode, eg, doesn't hijack your terminal
run will pull the image from docker hub if it isn't found locally
PORT BINDING
docker run -d -p [local port]:[container port] [image name]:[tag]
NAME THE CONTAINER
docker run --name [given name] -d -p [local port]:[container port] [image name]:[tag]
docker logs [container name | container id]
Fetches the logs of a container.
You can specify the container either by its name or ID.
docker stop [container name | container id]
Stops a running Docker container.
You can specify the container either by its name or ID.
docker start [container name | container id]
starts an existing container
docker rm [container name | container id]
Deletes a Docker container.
You can specify the container either by its name or ID.
docker rmi [container name | container id]
Removes a Docker image.
You can specify the image either by its name or ID.
docker images
--------
DOCKER FILE
the file from which an image is built
--------
FROM
Sets the base image for subsequent instructions.
A valid Dockerfile must start with a `FROM` instruction.
Example: `FROM ubuntu:18.04`
COPY
Copies files or directories from ``
and adds them to the filesystem of the container at the path ``
Example: `COPY . /app/`
the trailing slask `/` means create this folder if it doesn't exist
Example: `COPY package.json /app/`
Example: `COPY src /app/`
WORKDIR
Sets the working directory
for any `RUN`, `CMD`, `ENTRYPOINT`, `COPY` and `ADD` instructions that follow it in the Dockerfile.
Example: `WORKDIR /app`
RUN
Executes any commands in a shell/terminal inside the container environment
The commands add a new layer on top of the current image and commit the results.
The resulting committed image will be used for the next step in the Dockerfile.
Example: `RUN npm install`
Example: `RUN apt-get update && apt-get install -y python3`
CMD
Provides defaults for an executing container.
These can include an executable, or they can omit the executable, in which case you must specify an `ENTRYPOINT` command.
Example: `CMD ["executable","param1","param2"]`
Example: `CMD ["node","server.js"]`
--- other commands ---
ENTRYPOINT
This command allows you to configure a container that will run as an executable.
Example: `ENTRYPOINT ["executable", "param1", "param2"]`
ADD
This command copies new files, directories or remote file URLs from `` and adds them to the filesystem of the container at the path ``. `ADD` has some features (like local-only tar extraction and remote URL support) not present in `COPY`.
Example: `ADD . /app`
EXPOSE
This command informs Docker that the container listens on the specified network ports at runtime.
Example: `EXPOSE 8080`
ENV
This command sets the environment variable `` to the value ``. This value will be in the environment for all subsequent instructions in the build stage and can be replaced inline in many as well.
Example: `ENV MY_NAME="John Doe"`
VOLUME
This command creates a mount point with the specified name and marks it as holding externally mounted volumes from native host or other containers.
Example: `VOLUME /myvol`
ARG
This command defines a variable that users can pass at build-time to the builder with the `docker build` command.
Example: `ARG VERSION=latest`
USER
This command sets the user name (or UID) and optionally the user group (or GID) to use when running the image and for any `RUN`, `CMD` and `ENTRYPOINT` instructions that follow it in the Dockerfile.
Example: `USER myuser`
Remember, the order of commands in a Dockerfile matters because each command in a Dockerfile results in a new image layer. Later commands can use the results of previous commands. Also, Docker uses a build cache - if a particular command has been executed before and nothing has changed, Docker uses the cached result, which can make building images faster.
--------
Build a DOCKER IMAGE from a DOCKER FILE
--------
docker build -t [name:tag]
Builds a Docker image from a Dockerfile in the current directory.
The `-t` option lets you specify a name and tag for the image.
docker exec -it [container_id] command
Runs a command in a running container.
The `-it` options make the session interactive so you can interact with the command.
You can specify the container either by its name or ID.
docker-compose up
Starts all services defined in a `docker-compose.yml` file
docker-compose down
Stops and removes all services defined in a `docker-compose.yml` file.
--------
Remember that to use any of these commands, you first need to have Docker running on your system. Additionally, most of these commands require root privileges, so depending on your system's configuration, you might need to prefix them with `sudo`.
Also note that many commands have additional options and flags that can be used to modify their behavior. You can see these by typing the command followed by `--help`, for example, `docker run --help`.
Expose: listens on the network port at run time - listens for commands from docker client ? Listens for what ? Can you please clarify?
Amazing introduction to Docker, it was super clear and concise, thank you so much Nana ! 👏😎 Going to the 3 hours full course RN
You are absoultely fantastic! This is the gentle introduction to Docker I was looking for. So thanks Nana.
Awesome video. I've always heard of containers and had just an abstract idea of how it worked. In this 1h video, we have a real application working in a container and we can see how it works. Fantastic! I will keep following you. Thanks!
Finally a tutorial that helps you understand what Docker actually is, how it works and also very practical. Although I couldn't get it to work with npm it was a step in the right direction for me. Maybe once an example in a tutorial would be possible, where a MySQL database is pulled as an image from docker-hub, then via Dockerfile a database and a table are created and lastly a record is written to the database. That would be great. But it would also be important for me to understand how I can get back to this data set, even if the container was stopped once ... (If I have understood it correctly, the container is reset with every stop, right?)
I am a curious learner and a novice in Docker. This tutorial is so amazing. it made me confident about Dockers right away!. Thx a Ton !!
It would be great if you could make a video where you explain the different types of storage (nfs/distributed), how to address them on premise, it is recommended on the same servers as kubernetes or if it is better with another technology on separate servers, something similar in the cloud. The content you generate is amazingly good, it helps a lot, thanks nana!
Best crash course! Each and every step was cleary explained here. Just built a basic django app image running locally with this tutorial learnings. Thanks Nana!
Awesome course. And the final scheme of how docker fits in the overall process was the cherry in the cake.
I really loved the tutorial. Completed on a single sitting. Really great tutorial. Keep up the good work.
First, I watched your full course [3 hours] about docker. I. have learned so much things but I had some question marks in my mind especially about reasons. You explained docker more clearly and more convenient way in this video. My questions have been destroyed. Many thanks!
Nana, thank you so much for this awesome video. You have made it so easy to understand especially for some one who has no knowledge of what a container is. Loving your content on youtube.
This is brilliant. Thank you for putting this together. I'm now much more comfortable with Docker!
Thank you for such a concise and enjoyable tutorial!
Hands-down, one of the best explanation of Docker ever. God bless you!
Great tutorial! Your explanation was clear and easy to follow... thank you for such a great content 👍
I’m new to docker and this tutorial is absolutely all you need to get started
The video was just next level! Thanks for this resource and courage for your other video productions
This is the best docker crash course I've seen so far, I was struggling with all the other videos and with yours I have 0 questions, I loved the part where you created the Dockerfile, you created in a way that it was super clear why you were using some specific commands, you got a new subscriber :)
Thanks Nana. It was a brilliant course. Definitely recommend to the beginners!!!
Thank you so much for these valuable courses which are getable in public domains like youtube! Please keep continuing this great work which would be a great meal for IT cravers!!
Wow, what a wonderful video! This is one of those videos to treasure. Thank you, Nana!
Fantastic short introduction! Thank you very much. Really enjoyed it 👍
Absolutely wonderful video Nana, this has given me perfect fundamental understanding of Docker and its necessity. Thank you 👍 for helping the tech community.
Nana you have explained docker perfectly. Your explanations and animation graphics make it so much easy to understand. Before watching this video I have zero knowledge about docker but right now I feel like I have more than beginner knowledge about docker just because of your explanations style. Do keep up the good work and take love.
You are a god! I've never seen an explanation so fluid like that before. Thank you very much for you splendid class! Thanks for helping the community
Great content and explanation. Just started watching your Videos and I'm already enjoying them. Thanks for putting in so much effort. It will be great if you make some Videos on system design as well. All the Best 👍
Great video. I’m exposed to docker every day and I’ve never properly understood it, but this video fills many of the gaps. Going to watch the full tutorial!
Perfect video Nana! Thank you!
Best 1 hour course yet. Thank Nana.
You are a gifted teacher and you know how to support your teaching skill with visuals/presentations. It's like an ideal package we get from you. Absolutely impressive!
49:16 love how you explained everything step by step and using "how and why" method
Very good tutorial. Simple and easy to understand. Thank you!
Extremely informative. Simple thorough amazing and enjoyable. Thanks for doing this.
By far the best at explaining everything! Thank you so so much for all your content!