Top 8 Docker Best Practices for using Docker in Production

8 Docker Production Best Practices to improve security, reduce the image size and improve build time
Full Docker course ► • Docker Tutorial for Be...
Follow me on IG for behind-the-scenes content 😊 ► bit.ly/2F3LXYJ
► This video is sponsored by Kasten 🙌🏼
► Free Kubernetes Backup and Migration - Download Kasten's K10 and Get 10 nodes free forever: www.kasten.io/nana
Docker adoption rises constantly, but not everyone is using Docker according to the best practices.
So in this video I want to show you 8 ways you can use docker in a right way in your projects to improve security, optimize the image size and take advantage of some of the useful Docker features and also write cleaner and more maintainable Dockerfiles.
▬▬▬▬▬▬ T I M E S T A M P S ⏰ ▬▬▬▬▬▬
0:00 - Intro
0:34 - BP 1: Use official and verified Docker Images as Base Image
1:13 - BP 2: Use Specific Docker Image Versions
2:12 - BP 3: Use Small-Sized Official Images
4:35 - BP 4: Optimize Caching Image Layers
10:09- BP 5: Use .dockerignore file
10:55 - BP 6: Make use of Multi-Stage Builds
14:15 - BP 7: Use the Least Privileged User
16:06 - BP 8: Scan your Images for Security Vulnerabilities
17:50 - Wrap Up
▬▬▬▬▬▬ Want to learn more? 🚀 ▬▬▬▬▬▬
Full Docker course ► • Docker Tutorial for Be...
Full Python course ► • Python Tutorial for Be...
Full K8s course course ► • Kubernetes Tutorial fo...
DevOps Tools, like Terraform, Prometheus ► bit.ly/2W9UEq6
▬▬▬▬▬▬ Connect with me 👋 ▬▬▬▬▬▬
INSTAGRAM ► bit.ly/2F3LXYJ
TWITTER ► bit.ly/3i54PUB
LINKEDIN ► bit.ly/3hWOLVT
FB group ► bit.ly/32UVSZP
DEV ► bit.ly/3h2fqiO
▬▬▬▬▬▬ Courses & Bootcamp & Ebooks 🚀 ▬▬▬▬▬▬
► 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

Пікірлер: 234

  • @TechWorldwithNana
    @TechWorldwithNana2 жыл бұрын

    Full Docker course ► kzread.info/dash/bejne/ZZdhy6SnZ5bKdKg.html Follow me on IG for behind-the-scenes content 😊 ► bit.ly/2F3LXYJ ▬▬▬▬▬▬ T I M E S T A M P S ⏰ ▬▬▬▬▬▬ 0:00 - Intro 0:34 - BP 1: Use official and verified Docker Images as Base Image 1:13 - BP 2: Use Specific Docker Image Versions 2:12 - BP 3: Use Small-Sized Official Images 4:35 - BP 4: Optimize Caching Image Layers 10:09- BP 5: Use .dockerignore file 10:55 - BP 6: Make use of Multi-Stage Builds 14:15 - BP 7: Use the Least Privileged User 16:06 - BP 8: Scan your Images for Security Vulnerabilities 17:50 - Wrap Up ▬▬▬▬▬▬ Want to learn more? 🚀 ▬▬▬▬▬▬ Full Docker course ► kzread.info/dash/bejne/ZZdhy6SnZ5bKdKg.html Full Python course ► kzread.info/dash/bejne/pmykssaEidPVp6w.html Full K8s course course ► kzread.info/dash/bejne/imhsuNd9htmWlNI.html DevOps Tools, like Terraform, Prometheus ► bit.ly/2W9UEq6 ▬▬▬▬▬▬ Connect with me 👋 ▬▬▬▬▬▬ INSTAGRAM ► bit.ly/2F3LXYJ TWITTER ► bit.ly/3i54PUB LINKEDIN ► bit.ly/3hWOLVT FB group ► bit.ly/32UVSZP DEV ► bit.ly/3h2fqiO ▬▬▬▬▬▬ Courses & Bootcamp & Ebooks 🚀 ▬▬▬▬▬▬ ► Become a DevOps Engineer - full educational program 👉🏼 bit.ly/3gEwf4V ► Ultimate Kubernetes Course (CKA) 👉🏼 bit.ly/k8s-administrator-course ► High-Quality and Hands-On Courses 👉🏼 bit.ly/3nIouPW ► Kubernetes 101 - compact and easy-to-read ebook bundle 👉🏼 bit.ly/3mPIaiU

  • @udhaykumar9853

    @udhaykumar9853

    2 жыл бұрын

    Hello Nana 👋 thanks for sharing 👍

  • @koenbrink
    @koenbrink2 жыл бұрын

    One thing I would like to add about the caching is that it can sometimes screw over your buiild. It is therefore actually advised by Docker to always test your Dockerfile with the --no-cache flag every once in a while (for example with Github Actions or automatated build testing, a good idea would be to use --no-cache) in case you are for example building external files. In that case, a layer like "git clone ..." can be cached, but if the files in that repository change, it will still use the cached layer because the command did not change. Great video as always

  • @TechWorldwithNana

    @TechWorldwithNana

    2 жыл бұрын

    Thanks for sharing!

  • @MateuszCholewka

    @MateuszCholewka

    2 жыл бұрын

    Good point! The alternative solution is to use the version references, the same as specifying a docker image tag. For example, when you clone something you should specify a tag or commit hash. Same for installing something with apt or apk, you can specify the version of the package. In this case, you need to manually manage to update all your dependencies, but you have more control over that. If you update something, the command will be changed, and docker will rebuild the cache. That will also avoid situations when something works differently for a few developers because some of them use the old cache, and some of them built their images from scratch.

  • @koenbrink

    @koenbrink

    2 жыл бұрын

    @@MateuszCholewka yep, that would actually be even better. That would also be more inline with the points in this video about 'always specifying a version number'. Thanks for that!

  • @rusasd1
    @rusasd12 жыл бұрын

    Awesome video! I spent tons of hours on the official documentario about caching layers and I couldn't figure out how it works, now you made me understand in three minutes, I love you!

  • @pedroansilva
    @pedroansilva2 жыл бұрын

    I love the way you present your content in such a concise, but technically accurate manner. Congratulations and thank you for sharing Nana.

  • @prayagsingh03
    @prayagsingh032 жыл бұрын

    The way you explained everything in this video is not just amazing but super easy to understand too. Thank you so much for this wonderful video. You are awesome.

  • @anuragbapat2222
    @anuragbapat22222 жыл бұрын

    Thank you Nana! Never missed any of your videos on Docker or Kubernetes. You are one of the best out there!

  • @Das_KBob
    @Das_KBob2 жыл бұрын

    I am surprised that nobody mentioned docker secrets and sensitive data in general; You should NOT run commands that have passwords/api tokens as parameters (as they would show up in the history) and you should also NEVER copy sensitive unnecessary files (e.g. certificates for code signing) into an image during build, as people can revert to that layer and get it out of there; mount a host directory instead and read it from there, this way it never ends up in a layer.

  • @TechWorldwithNana

    @TechWorldwithNana

    2 жыл бұрын

    Thanks for sharing Niklas!

  • @morsikpl

    @morsikpl

    2 жыл бұрын

    Because Docker Secrets are part of Docker Swarm, and this video is not about Docker Swarm ;)

  • @Das_KBob

    @Das_KBob

    2 жыл бұрын

    ​@@morsikpl Touché;)

  • @r0zemary

    @r0zemary

    Жыл бұрын

    @@morsikpl Secrets still work in regular compose, just not much of a point compared to mounting them (which *is* what the original comment said, btw 😅)

  • @JesseSteinfort
    @JesseSteinfort2 жыл бұрын

    This video is fantastic. The tips go from basic to advanced so don't stop just because it seems like the tips are common sense. I'm in the middle of my docker journey and have one application in production right now. I found these tips to be useful and include things that I need to implement in my existing app and in others in the future. Thank you for this video.

  • @syskiessistemasit7448
    @syskiessistemasit74482 жыл бұрын

    Hi Nana!! Your videos are always a huge contribution! The way you detail the topics is fantastic! applause for your channel! At some point it would be good, best practices for docker-compose, you are well nana greetings!

  • @amolsurvase7507
    @amolsurvase750719 күн бұрын

    Thank you Nana ..!! Best video for docker best practice explanation .

  • @sachinpandey8003
    @sachinpandey80032 жыл бұрын

    Another great video!! Always learn a lot from your videos!! You really do a great job of simply explaining core concepts!

  • @ayencoscolfield3312
    @ayencoscolfield33122 жыл бұрын

    Always win me over with her charisma ,quality display of intellect and explanations on topical issues, this is another excellent work. Thanks Nana you are easily my champion

  • @TechWorldwithNana

    @TechWorldwithNana

    2 жыл бұрын

    Thanks so much for your nice words!

  • @CHITUS
    @CHITUS2 жыл бұрын

    I had no Idea about changes in previous layers breaking the caching of the following layers! Excellent video

  • @sgrhr024
    @sgrhr0242 жыл бұрын

    Absolute Saviour you are, anything i search n there u have created a video, Thanks you for the time and efforts

  • @remyzandwijk
    @remyzandwijk2 жыл бұрын

    Once again, very useful and high-quality content. Thanks Nana! I have a question: could you tell us some more about the tools you are using to create these videos? In particular, I am interested in what software you use to create the animations and such.

  • @iamachs
    @iamachs2 жыл бұрын

    Amazing work mate, thank you so much for making this video, all the best to you, and Stay Strong!

  • @hiepvuvan438
    @hiepvuvan4382 жыл бұрын

    Thank you so much! You helped me a lot with leaning Docker and Kubernetes XD

  • @Ninja-Magician
    @Ninja-Magician8 ай бұрын

    Really helpul, nicely explained things, Loved the video... :)

  • @kunalbagwe6091
    @kunalbagwe60912 жыл бұрын

    As always, valuable content created. Thank you Nana for making topics so much easy to grasp. Will it be possible to create a video on Docker in Docker concept, it will help alot. Thanks Once Again.

  • @royston1928
    @royston19282 жыл бұрын

    I had no Idea about changes in previous layers breaking the caching of the following layers! Excellent video 👍

  • @AfmpJR
    @AfmpJR9 күн бұрын

    You did it great. Thank you for sharing

  • @symbally
    @symbally2 жыл бұрын

    Very good recommendations explained concisely; I shared this with my team halfway through watching, love it

  • @ovidiuc4
    @ovidiuc42 жыл бұрын

    Great video. A similar one for development setup would be awesome.

  • @crosticox
    @crosticox2 жыл бұрын

    Another great and simple digestible topic. You rock

  • @hariprakashpalanisamy923
    @hariprakashpalanisamy9232 жыл бұрын

    Thank you so much, the video was helpful and informative.

  • @suassouf
    @suassouf Жыл бұрын

    Awesome. Extremely useful best practices summary. And it is so clearly explained that if you don´t understand it, probably you have to think in changing your career.

  • @colinschi1001
    @colinschi1001 Жыл бұрын

    One quick note. For Image caching you have to use immuteable tags/layers. Otherwise a for example when a cached latest tag is used and never get updated. To be more precise you can also use the layers/image digest instead of a tag. @Nana As always: Great videos! :)

  • @rtb8085
    @rtb80852 жыл бұрын

    Love your videos Nana ... keep them going

  • @user-mo2ss3hh2p
    @user-mo2ss3hh2p2 жыл бұрын

    Good video! Thank you for sharing! Just one thing to mention: since you're saying in "production", maybe you wouldn't use node.js 17(odd version instead of LTS, which is unstable).

  • @soucianceeqdamrashti8175
    @soucianceeqdamrashti81752 жыл бұрын

    Great presentation and well explained! Keep it up Nana!

  • @AhmedHabbachi
    @AhmedHabbachi2 жыл бұрын

    I started watching this video with a lot of skepticism, but really great practices and it responded to a lot of my question, even if I was doing some tips I didn't know why it was done like so (as I was basically copy pasting commands) great explanation thanks.

  • @TechWorldwithNana

    @TechWorldwithNana

    2 жыл бұрын

    Really happy to hear, thanks Ahmed for the feedback! :)

  • @IceyBoy47
    @IceyBoy472 жыл бұрын

    Great video, would love to see others like this one for other technologies

  • @TechWorldwithNana

    @TechWorldwithNana

    2 жыл бұрын

    Thanks for your comment, good to know! :)

  • @andy5627
    @andy56272 жыл бұрын

    I think another best practice good to mention is to minimize the number of layers, for example instead of write multiple `RUN` instructions which created multiple layers, we can write a single `RUN` instruction with the necessary commands by concat it with && or even backslash `\` to decorate the Dockerfile for better readability.

  • @nathanlewis42

    @nathanlewis42

    2 жыл бұрын

    Wouldn’t that mess less effective caching? If you had three commands anded together and only the last need to change you would not have a cache of the previous two.

  • @berndeckenfels

    @berndeckenfels

    2 жыл бұрын

    @@nathanlewis42 yes, it’s probably better to not use it in the build step and only in the run image if the missing cache Is a tradeoff (depends on how often you change a image and how many copy’s are distributed)

  • @ta2742
    @ta27422 жыл бұрын

    Great explanation Nana, thank you!

  • @fayssaldarif5686
    @fayssaldarif56862 жыл бұрын

    Thank you very very much, you have the best and the easy content, keep going please.

  • @thomash.8297
    @thomash.82972 жыл бұрын

    Thank you Nana! Perfect like always.

  • @TechWorldwithNana

    @TechWorldwithNana

    2 жыл бұрын

    Thanks so much Tom!

  • @roman445
    @roman4452 жыл бұрын

    Your videos are excellent, Nana, thanks a lot.

  • @dmitryscherbakov3353
    @dmitryscherbakov33532 жыл бұрын

    Thanks a lot! It is very useful for beginners.

  • @dimitrisfilippou
    @dimitrisfilippou7 ай бұрын

    Thank you so much!

  • @kayderl
    @kayderl2 жыл бұрын

    Thanks for sharing. Your channel is an amazing resource.

  • @alifiroozizamani7782
    @alifiroozizamani77822 жыл бұрын

    What a awesome tips! Thanks a lot nana🙏

  • @Hackenbaker
    @Hackenbaker Жыл бұрын

    Thanks a lot. This information is very valuable.

  • @patriciohernansanchez1148
    @patriciohernansanchez11482 жыл бұрын

    Thanks Nana again from Argentina!! Very Helpful content. Regards!

  • @RABWA333
    @RABWA3332 жыл бұрын

    Thank you Nana , another awsome work

  • @ManhPham-fh6on
    @ManhPham-fh6on Жыл бұрын

    excellent explanation for caching layer. Ty!

  • @fauzifauzi2129
    @fauzifauzi21292 жыл бұрын

    Hi Nana, could you do best practice in using docker for non development purpose, more into administration jobs, like what is the best practice in volume management, updating image, how to transfer volume between hosts, etc.??

  • @yuriytimerkhanov1228
    @yuriytimerkhanov12282 жыл бұрын

    This is brilliant, huge thanks 😊

  • @joelamks
    @joelamks2 жыл бұрын

    Nana always let me learn something really materials. Thanks

  • @andriyun
    @andriyun2 жыл бұрын

    One of the most popular practice to reduce a size of a layer is deleting cache files the package managers generates during installation process.

  • @thuctranvan4630
    @thuctranvan46302 жыл бұрын

    Thank you so much. It's very helpful 😍

  • @mehdiboujid8761
    @mehdiboujid87612 жыл бұрын

    One of the best informative docker videos.

  • @shaileshsawant3285
    @shaileshsawant32852 жыл бұрын

    Thanks for sharing best practices

  • @AdnanAmmanUllah
    @AdnanAmmanUllah Жыл бұрын

    course completed, thank you Ms Nana. please recommend next, I am thinking of Jenkins

  • @ciscohaider7068
    @ciscohaider70682 жыл бұрын

    @TechWorld with Nana amazing video and the k you for educating us.

  • @lossurdo
    @lossurdo2 жыл бұрын

    Great content! You have good didactics and a very good slides and examples.

  • @abdulwahidgul
    @abdulwahidgul2 жыл бұрын

    If we can get the best practices for docker-compose. It will like aged wine and tasty cheese. Great video. You just level up docker game to a whole new level. Thank you

  • @jonnyzheng419
    @jonnyzheng4192 жыл бұрын

    Great docker usage shareing. Thanks!!!💕💕💕

  • @jubinben4538
    @jubinben45389 ай бұрын

    Thank you for the easy explaination!

  • @joncrockettable
    @joncrockettable Жыл бұрын

    This is great. Thank you!

  • @francoisscala417
    @francoisscala4172 жыл бұрын

    And, of course, you can also specify the images versions for a multi-stage build.

  • @DevTalles
    @DevTalles2 жыл бұрын

    Awesome! Thank you so much!

  • @ridwan4107
    @ridwan41072 жыл бұрын

    thanks Nana, really helpful tips for me

  • @teliat6242
    @teliat62422 жыл бұрын

    Really good explaination and voice tone 100% clear and perfect.

  • @TechWorldwithNana

    @TechWorldwithNana

    2 жыл бұрын

    Thanks for the feedback :)

  • @teliat6242

    @teliat6242

    2 жыл бұрын

    @@TechWorldwithNana Wish you continuously touch with more and more successful.

  • @horvathmilcsi
    @horvathmilcsi6 ай бұрын

    Great lecture thank you for sharing!

  • @dnzkrblt
    @dnzkrblt2 жыл бұрын

    Very useful information about Docker. Thank you Nana.

  • @viktorhonchar
    @viktorhonchar2 жыл бұрын

    Thank you Great tutorial

  • @youtubeoneverything4581
    @youtubeoneverything45812 жыл бұрын

    Informative and detailed❣️

  • @SuMiSc
    @SuMiSc2 жыл бұрын

    Perfect as usual!

  • @Souhib77
    @Souhib772 жыл бұрын

    Great video Nana, please more video on best practices !! 😊

  • @TechWorldwithNana

    @TechWorldwithNana

    2 жыл бұрын

    Thanks for your feedback, glad to hear! :)

  • @tdothot1
    @tdothot1 Жыл бұрын

    She is amazing!!! Beautiful and smart!

  • @blissweb
    @blissweb2 жыл бұрын

    Excellent info for a newbie like myself. 🙂

  • @NoDoubt747
    @NoDoubt747 Жыл бұрын

    These are great videos, thank you!!

  • @samucancld
    @samucancld11 ай бұрын

    such a great content, thanks

  • @zavierrodriguez9236
    @zavierrodriguez92362 жыл бұрын

    Great video!!! Thank you!

  • @0123anonymous
    @0123anonymous2 жыл бұрын

    Interesting.. a very useful.. thanks you Nana

  • @rahulaggarwal2244
    @rahulaggarwal22442 жыл бұрын

    Awesome!! Really helpful Video. Can you please make one video for vault integration and uses with kubernetes as well :)

  • @madhanr5622
    @madhanr56222 жыл бұрын

    Thanks Nana for your valuable information sharing 👍. Pls do one video for k8s

  • @tech-daddy
    @tech-daddy2 жыл бұрын

    Great content, thank you!

  • @gadgetkh9408
    @gadgetkh94082 жыл бұрын

    Great tips! Thank you!

  • @maryellenbowman2738
    @maryellenbowman27382 жыл бұрын

    Fantastically presented content.

  • @hichemd.7441
    @hichemd.74412 жыл бұрын

    Great video, as always .. 👏

  • @elenaperez6327
    @elenaperez63272 жыл бұрын

    Great tips, thank you! 😀

  • @garypaulson5202
    @garypaulson52022 жыл бұрын

    Thanks! This video was really helpful.

  • @TechWorldwithNana

    @TechWorldwithNana

    2 жыл бұрын

    Thank you Gary!

  • @SerpentsHiss
    @SerpentsHiss2 жыл бұрын

    Nicely done, didn't know the details of how the caching worked / broke or the default user being root. *scampers off to fix docker images*

  • @Shubham__Saroj
    @Shubham__Saroj Жыл бұрын

    Awesomely explained! Thanks

  • @iamaashishpatel
    @iamaashishpatel2 жыл бұрын

    Simply awesome video!

  • @Teruroom
    @Teruroom2 жыл бұрын

    動画のご提供ありがとうざいます!大変わかりやすく、かつ、役に立ちました。これからもどうかよろしくお願いいたします。

  • @Probattu
    @Probattu2 жыл бұрын

    Nana saving my DevOps Career.

  • @orhanfirik
    @orhanfirik2 жыл бұрын

    Great compilation 👍🏻

  • @artemmatiushenko2595
    @artemmatiushenko25952 жыл бұрын

    Very usefull video, thanks!

  • @abdelmonemmostafa5707
    @abdelmonemmostafa57072 жыл бұрын

    excellent all time nana, but could you make a video for CRD in kubernetes?

  • @franekborowiec9648
    @franekborowiec9648 Жыл бұрын

    great video! Learned a few things :)

  • @kirillpalnitsky3807
    @kirillpalnitsky38072 жыл бұрын

    Thank you!!!!

  • @alexserbul
    @alexserbul9 ай бұрын

    Thank you!

  • @rodrigoguerra3806
    @rodrigoguerra38062 жыл бұрын

    I love your content!

  • @user-gx1gf3cl5p
    @user-gx1gf3cl5p2 жыл бұрын

    Thanks Nana ♥

  • @dmitriydiachenko5648
    @dmitriydiachenko56482 жыл бұрын

    awesome useful video! thank you

  • @jibin7277
    @jibin72772 жыл бұрын

    Great explanation - experts , can anyone point me to the best possible base image that I can use in my dockerfile for a java 8 and 11 project?

  • @omrivol
    @omrivol2 жыл бұрын

    Thanks Nana!

  • @Noah-vm8id
    @Noah-vm8id2 жыл бұрын

    Thank you, thank you, this didn't only help me managing my stuff more but also understanding what I just copypasted from recommendations xD, which I can still recommend to anybody since those are from people who know what they are doing.