Docker Tutorial for Beginners - A Full DevOps Course on How to Run Applications in Containers

  • Published on Aug 16, 2019
  • Get started using Docker with this end-to-end beginners course with hands-on labs.
    Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications, whether on laptops, data center VMs, or the cloud.
    In this course you will learn Docker through a series of lectures that use animation, illustration and some fun analogies that simply complex concepts, we have demos that will show how to install and get started with Docker and most importantly we have hands-on labs that you can access right in your browser.
    💻 Practice Labs:
    🔗 KodeKloud Website:
    🎥 Tutorial from KodeKloud. Check out their TVclip Channel:
    ⭐️ Course Contents ⭐️
    ⌨️ (0:00:00) Introduction
    ⌨️ (0:02:35) Docker Overview
    ⌨️ (0:05:10) Getting Started
    ⌨️ (0:16:58) Install Docker
    ⌨️ (0:21:00) Commands
    ⌨️ (0:29:00) Labs
    ⌨️ (0:33:12) Run
    ⌨️ (0:42:19) Environment Variables
    ⌨️ (0:44:07) Images
    ⌨️ (0:51:38) CMD vs ENTRYPOINT
    ⌨️ (0:58:37) Networking
    ⌨️ (1:03:55) Storage
    ⌨️ (1:16:27) Compose
    ⌨️ (1:34:49) Registry
    ⌨️ (1:49:38) Engine
    ⌨️ (1:34:49) Docker on Windows
    ⌨️ (1:53:22) Docker on Mac
    ⌨️ (1:59:25) Docker Swarm
    ⌨️ (2:03:21) Kubernetes
    ⌨️ (2:09:30) Conclusion
    Learn to code for free and get a developer job:
    Read hundreds of articles on programming:
    And subscribe for new videos on technology every day:

Comments • 126

  • KodeKloud
    KodeKloud 3 months ago +39

    Please access the labs here:

    • Chetan Hireholi
      Chetan Hireholi Month ago +2

      Hey, awesome practice sessions in labs! Thanks for making it available publicly. But i'm not able to find sessions for Docker compose and Docker registry! :(

    • vimal kumar
      vimal kumar 3 months ago

      Link not working

    • krishna kamal Singh
      krishna kamal Singh 3 months ago

      @KodeKloud hey its working thank you

    • krishna kamal Singh
      krishna kamal Singh 3 months ago

      @KodeKloud Bangalore India

    • KodeKloud
      KodeKloud 3 months ago

      @krishna kamal Singh Just checked and it seems to be working. Can you please try again? And may I know your location please?

  • Karuppiah Arumugham

    Very informative video on Docker. The instructor is too good....

  • Srinivasa Raghu
    Srinivasa Raghu Day ago

    Very good tutorial

  • Sharath George M
    Sharath George M 2 days ago

    Thanks a ton! :D

  • kostas stathopoulos
    kostas stathopoulos 2 days ago

    Maybe the best tutorial and tests i have seen.Thank u for u time and your upload on video i even understand some things for Linux thoughtout your video.Hope i meet u again in a NEW video about Ubuntu.

  • Nicholas Willcox
    Nicholas Willcox 4 days ago +1

    When he talks about the matrix of hell in version problems and such, all I could think was, "every java app I've ever used in network engineering". LOL

  • theAbhi- eYe
    theAbhi- eYe 5 days ago +1

    how can we execute exec command if any process kill just after it start from run command

  • Loading 500
    Loading 500 7 days ago +1

    Great job, sir! Thank you. I have been watching a full tutorial of docker which lasts more than 10 hours, but in two hours, you taught me a lot more. Thank you for sharing this.

  • Reverse FlasS
    Reverse FlasS 8 days ago +1

    thnak god, best explanation sir🙏

  • Mrtn
    Mrtn 8 days ago

    Dude, this is awesome! Thanks

  • Touré Holder
    Touré Holder 8 days ago

    Disliking this video is the definition of hate.

  • Maureen Barasa
    Maureen Barasa 9 days ago


  • Eduardo Fernandes
    Eduardo Fernandes 10 days ago

    Thank you for sharing a great content

  • Brad Peters
    Brad Peters 11 days ago

    The information in this video combined with the labs is easily the best Docker introduction I have found so far. Better than the official Docker introduction. Thank you for sharing your knowledge.

    LAVAL SOFTWARE 16 days ago

    To a tech from another, superb explanation regarding the basic questions we all are wondering about. Great job!

  • Diana Carolina Duque Montoya

    I don't understand why the result-app was added to the docker run command for postresql, is that an error? min 1:22:11

  • IT Learning TechTube
    IT Learning TechTube 17 days ago

    nice way of teaching

  • Barbara Borges
    Barbara Borges 17 days ago

    The link for Docker on Linux is wrong :(

  • Akshay Verma
    Akshay Verma 18 days ago +3

    Great tutorial tottally loved it, was looking for something exactly like this to start learning docker. Thank you !

  • Nate
    Nate 19 days ago +1


  • Farkhod Karimov
    Farkhod Karimov 19 days ago

    suggest to improve the sound

  • sha figh
    sha figh 19 days ago +2

    46:28: docker build Dockerfile does not work, and i get an error: unable to prepare context: context must be a directory

    • Shubham Jaiswal
      Shubham Jaiswal 14 days ago

      By default the build command needs the location of directory where a file named "Dockerfile" is present. So if you are in the directory with the Dockerfile, just use "docker build ." ( . means current directory). Use the -f or --file FILENAME option for a custom file.

  • George Smith
    George Smith 20 days ago


  • Mahaveer Kothari
    Mahaveer Kothari 25 days ago +1

    This is by far the most effective tutorial on Docker I have found!

  • Raymond
    Raymond 26 days ago

    Just an info. New windows 10 doesn't have hyper V so you cannot install docker. You need windows 10 pro (more expensive)

  • Kaszanas
    Kaszanas 27 days ago +3

    I love the part when it is explained that everything can be correctly set up by the developer and that the Ops is not really needed cause the image is already created 🤔😏

  • Nahid islam
    Nahid islam 29 days ago


  • Manuel Ruiz
    Manuel Ruiz Month ago +1

    Good explanation
    I was practicing with the docker-labs of kodekloud and it was amazing
    Thank you

  • Ibrahim H
    Ibrahim H Month ago

    Hey, This is a great video, you nailed it for a beginner like me. I was nurturing a plan to cover or add some DevOps skill to my developer skill. This gave me an insight and a strong beginning. I will be on KodeKould to learn more. Thanks a lot

  • Renji Mathew
    Renji Mathew Month ago

    Excellent Video for anyone starting on Containers!!!! cannot explain this any better Thank you!!!

    ARVIND PAI Month ago

    Absolutely brilliant course. Very simple explanation . Got concepts very clear by watching this video.

  • Niranjan P B
    Niranjan P B Month ago

    Very superb tutorial. I really liked it. You have explained the concept in a very crisp and clear.

  • Vitor Monteiro
    Vitor Monteiro Month ago +2

    Amazing, I have used Docker for small tests but everything was too "mechanical". This video made this though topic very easy to understand! Thanks!

  • Nashrah Meraj
    Nashrah Meraj Month ago

    none of the link is working for me

  • Adrenaline
    Adrenaline Month ago

    Best tutorial ever.
    Thank you.

  • Randolfo
    Randolfo Month ago

    Thank you very much, excellent video, great job, it has helped me a lot!

  • Jakub Mroz
    Jakub Mroz Month ago +1

    Great teacher and the way it's presented! Well done!

  • Phil
    Phil Month ago

    Very well done video! Thank you very much.

  • Saif Shaikh
    Saif Shaikh Month ago

    What is up with the docker-compose lab? Its saying, "We will be updating this soon. Please check back later", please fix this! :)

  • Ravi Balla
    Ravi Balla Month ago

    The Docker Compose lab has been saying "Work In Progress". Any ETA for it to be available? BTW, nice tutorial. Thank you.

  • Ciao!
    Ciao! Month ago +1

    Best explanation on dockers yet.

  • Varun Shah
    Varun Shah Month ago +1

    Best explanation to Dockers and Docker orchestration Introduction. Loved it

  • Chetan Hireholi
    Chetan Hireholi Month ago

    Great video! thanks for the tutorial!

  • Chetan Hireholi
    Chetan Hireholi Month ago

    Cannot find lab practices for Docker-compose & Docker-registry at KodeKloud labs. :(

  • Chetan Hireholi
    Chetan Hireholi Month ago

    great video!

  • FanonX Rogers
    FanonX Rogers Month ago

    This is an amazing course. With that, I have a bunch of questions.
    1. Say if I create a new container from an mongo image, and then I stop that container, and then want to rerun that container, should I use docker run with that base image or use docker start/stop.

    for example: I want to launch a MongoDB container.

    `docker run --name mongo-container mongo`

    I stop it with

    `docker container stop mongo-container`

    and then rerun it

    `docker container start mongo-container`

    how come when I first ran docker run mongo, I could see the mongo daemen in my terminal but then when I stop and then start the container it won't show up in my terminal? Does this have to do with docker run being in attached mode by default? or if I run the container using docker start its in detached mode?

    2. How do I know what map network to map to that specific container?

    like for mongo I did this

    `docker run -p 27017-27019:27017-27019 --name mongo-container -v mongoVol:/app mongo:latest`

    3. the same goes for volume mapping, how do I know the path I'm mapping to? I'm assuming each image will have a different path to store the data into? in the above example, I'm creating a volume named mongoVol and then mapping that too /app within this container, but honestly, how would I know what path to pick?

  • animatem
    animatem Month ago


  • Andrew Denis
    Andrew Denis Month ago +10

    You did such a phenomenal job on this video- like one in a thousand. You are an amazing teacher and really thought through the instructional sequence very well. I look forward to checking out your other videos and related instructional materials you referenced. Thanks!

  • yash khandha
    yash khandha 2 months ago

    Very well explained. Most of the concepts included in a single video. I had watched many videos on Docker and got information on different parts. I started your video just to see if I know everything and I ended up watching the entire video.

    Thanks for the help mate! Cheers.

  • SaiKumar Immadi
    SaiKumar Immadi 2 months ago

    I thought that I knew everything but boy was I wrong.

  • Mariusz M
    Mariusz M 2 months ago

    you know nothing. Jon Snow

  • Tegny Geoffrey
    Tegny Geoffrey 2 months ago

    At 1:22:19, I think the "result-app" image name went to the wrong line.
    It should goes to "docker run -d --name=result -p 5001:80 result-app" and not to "docker run -d --name=db postgres:9.4 result-app"


  • Ricardo Saturnino
    Ricardo Saturnino 2 months ago

    Great tutorial! Thanks very much! Checking kodekloud now...

  • 李笑千
    李笑千 2 months ago

    This video is AWESOME!Thanks bro!

  • Vinayak Kalushe
    Vinayak Kalushe 2 months ago

    This is the best Docker beginner course.
    Good work KodeKloud

  • Vygantas Šimkus
    Vygantas Šimkus 2 months ago

    Very very good course, thank youuuu!!!!

  • digigoliath
    digigoliath 2 months ago

    Thank you! Will be doing this after my Bootcamp.

  • Gökdağ Göktepe
    Gökdağ Göktepe 2 months ago +2

    In section VOLUMES around 1h14s in the video:

    The command for mounting: docker run -v data_volume:/var/lib/mysql mysql This didn't work for me. I needed to specify password for mysql as below:

    docker run -e MYSQL_ALLOW_EMPTY_PASSWORD =yes -v data_volume:/var/lib/mysql mysql

    I don't know if anybody got that problem but I wanted to share in case somebody having the issue.

    PS: Beautiful video. Thanks a lot!

  • Vitaly Kuzmenko
    Vitaly Kuzmenko 2 months ago

    Very goog explanation. Like it. Thanks its free

  • Fujo DJ
    Fujo DJ 2 months ago