What's really inside your docker containers?

Поделиться
HTML-код
  • Опубликовано: 14 окт 2024

Комментарии • 102

  • @dreamsofcode
    @dreamsofcode  Год назад +1

    See NordPass Business in action now with a 3-month free trial at
    nordpass.com/dreamsofcode with code dreamsofcode

    • @spinoscythe
      @spinoscythe Год назад +1

      C++ neovim pls

    • @dreamsofcode
      @dreamsofcode  Год назад +1

      @@spinoscythe 😅 it's coming soon I promise

    • @vuongngo8228
      @vuongngo8228 Год назад

      Please make video on how to install arch linux and i3 config so that your viewers can all say we use Arch btw

  • @victorguidi6223
    @victorguidi6223 Год назад +14

    Fantastic video!! Would be awesome to see a continuation on how to integrate that within a deployment process! Thanks a lot for the content 💪🏼

    • @dreamsofcode
      @dreamsofcode  Год назад +1

      I'm glad you enjoyed it! Thank you for watching

  • @yaaaayeet745
    @yaaaayeet745 Год назад +37

    THE THUMBNAIL IS JUST 🤌✨

    • @dreamsofcode
      @dreamsofcode  Год назад +6

      Thank you. I drafted a rough copy and had a wonderful artist turn it into something much better. My original version was terrible in comparison 🤣

    • @yaaaayeet745
      @yaaaayeet745 Год назад +1

      @@dreamsofcode

    • @kapilpokhrel3841
      @kapilpokhrel3841 Год назад

      ​@@dreamsofcode would love to see that 😅.

    • @dreamsofcode
      @dreamsofcode  Год назад

      @@kapilpokhrel3841 It's on my discord! If you join and message me I'll send it to you also haha.

  • @waldowalden7379
    @waldowalden7379 Год назад +8

    Another great video. On top of that I'd add I am observed variations in container scanner results. Remember that scanners are based on database of vulnerabilities and some of them update more frequent than others, or simple, has a different logic when scanning. Having said that I'd encourage pick the top 3 free scanners out there (Trivy, Grype, Snyk) and double check your scanning results. (you can build a Python script to consolidate the scanning and even build into a pipeline).
    The reason why these discrepancies are common relies in the fact how scanners logic runs. I've been found earlier that Snyk doesn't work well with stripped binaries on containers (for instance, when the container builder decided to remove some metadata of the container in order to make it reduce the size of the image).
    @Dreams of Code ... awesome material ... I'd improve this video in the future using Trivy instead Grype since Trivy scans secrets along with the process of containers scanning. =)

    • @dreamsofcode
      @dreamsofcode  Год назад +2

      Thank you! I'm a huge fan of Trivy and it's my preference as well!
      I went with syft and grype for this video to mainly for educational focus on the two distinct parts, sboms and scanning.
      Trivy can also do sboms but i didn't want to go into too much detail about it as I've got a video planned for Trivy in the future 😁.
      The aggregation is a great idea. It's something we've been considering as it's hard to be comprehensive without it due to the differences.

  • @dylanelens
    @dylanelens Год назад +7

    Good video, I really liked the topic. I use docker all the time and did not know this was that much of an issue

    • @dreamsofcode
      @dreamsofcode  Год назад +1

      I didn't know either until I went to Kubecon last year and it was part of the keynote. Since then it's gotta worse (~76% -> 87%)

  • @wmhilton-old
    @wmhilton-old Год назад

    This is incredibly well made! Graphics, script, everything!

    • @dreamsofcode
      @dreamsofcode  Год назад

      Thank you! I'm proud of this one. The topic wasn't as interesting it seems but I really enjoyed making this one!
      I'm glad you enjoyed it 😀

  • @allroni
    @allroni Год назад +1

    Thanks a lot, once again! I really love your introductions to different tools! And your animations are amazing, as always!
    Personally, I find that the short sound effects you added detract a bit from what you are saying and I'm glad you didn't use them as much after the intro. (Just wanted to let you know in case you plan to add them to the rest of the video as well... but then again, perhaps it's just me. :-)

    • @dreamsofcode
      @dreamsofcode  Год назад +1

      Thank you for the feedback! I'm still trying to get the mixing right and was probably too loud on some of them! I make sure to keep them out of any instructional parts though.
      I'm glad you liked the video and I'll try to do better!

  • @DrMildayan
    @DrMildayan Год назад +1

    Thank you. Would definitely like to see how to integrate with CI/CD

  • @B20C0
    @B20C0 Год назад

    This video should be on the watch list of every DevSecOps engineer, good job!

  • @JonBrookes
    @JonBrookes Год назад

    very usefull and thank you for making this video
    I am happy to see some of my images that run go apps have zero vulnerabilities according to grype where as others that use bigger, lets say more feature rich base images not so, er, well, some vulnerabilities there then, ahem.
    So there is a lot to be said for small containers running go, rust, ( insert here other compiled and perhaps statically compiled ) that use base images that are as minimal as possible if you want them to 'stay young and beautiful'.

  • @guiorgy
    @guiorgy Месяц назад

    Docker has a static scanner, and then there's Docker Scout too. But it always good to have alternatives

  • @alexsoul982
    @alexsoul982 Год назад

    Great video, I recently discover your channel and I've learn a lot from you.. May I ask you, what zsh theme are you using? Greatings from Cuba 💪🏼

    • @dreamsofcode
      @dreamsofcode  Год назад +1

      Thank you! I use ohmyzsh with powerlevel10k! It's really nice :)

  • @LoganVanCuren
    @LoganVanCuren Год назад

    Fantastic video! Thank you! It is very eye opening to scan through my images!

  • @blaze9872
    @blaze9872 Год назад +2

    Fantastic video! Waiting on the video with build automation!

    • @dreamsofcode
      @dreamsofcode  Год назад +2

      I'm looking forward to doing some CI/CD content soon!

  • @antonioiorga7708
    @antonioiorga7708 Год назад +3

    Each time I see one of your videos I try to make my terminal closer to yours. 😂😂
    The bar of the bottom of the terminal is an ohmyzsh plugin?

    • @ex-32
      @ex-32 Год назад +2

      The bar at the bottom with the number "1" on the far left is the status bar from tmux with the catppuccin theme, he shows the setup in his video on tmux: "Tmux has forever changed the way I write code."

  • @anotherone2398
    @anotherone2398 Год назад

    It'd be really cool if you could dive deep into how containers work under the hood

  • @JohnSmith-yz7uh
    @JohnSmith-yz7uh Год назад +1

    Is this more applicable to container maintainers or to admins deploying a container? You should vet containers you're going to deploy, but having to update dependencies/packages yourself before deploying seems too much. Even though I just started working professionally, I prefere setting up VMs and applications up from scratch. Repos for newer versions etc. in hindsight it might be just as much work

    • @dreamsofcode
      @dreamsofcode  Год назад +3

      We use container scanning in our CI/CD pipeline and basically block any images that have a fixed issue from being deployed. We have someone who is responsible for security, but adding this as automation allows us to scale with security.
      So, to answer your q: It depends!

    • @InDieTasten
      @InDieTasten Год назад

      I'd say both.
      As a maintainer you want to make sure you are keeping up to date with issues of your dependencies, so the image you deliver stays more secure.
      As an admin you want to make sure you are deploying up to date versions of your container images, and might not want to trust the maintainer to keep things secure. You can then raise issues to the maintainer, if there's something critical to fix, or look at alternative images/projects altogether to satisfy your workload.

  • @darkfire2703
    @darkfire2703 Год назад +5

    Very nice video.
    But to play devils advocate here: "An image has components with vulnerabilities" is not the same as "An image is exploitable". Many of the vulnerabilities, even those categorized as HIGH, are not exploitable in practice. So while the 87% sound very very bad, it does in no way mean that 87% of the images can actually be exploited in the field if they are deployed. (Assuming that the 87% is just counting images that have components with vulnerabilities.)
    This of course doesn't mean we should just ignore vulnerabilities. The scanners are very useful and should probably be used by pretty much anyone. I'm just saying that things are often not as bad in practice

    • @dreamsofcode
      @dreamsofcode  Год назад +4

      You're correct. Not all vulnerabilities can be exploited. Deployment models, networking and isolation from the vulnerability mean that not every container is exploitable even if it has a high or critical vulnerability. I also strongly agree that it's not a good practice to ignore them as it can cause the broken window effect.
      I don't believe I said 87% of images are exploitable though. Only that 87% have high or critical vulns, as per the source.

  • @mantovani96
    @mantovani96 Год назад +4

    Man, your videos are so good!

  • @wolfisraging
    @wolfisraging Год назад

    This video proves that my choice of subscribing youtube channels is freaking awesome!

  • @mizunokizu
    @mizunokizu Год назад

    Would have been cool to include Dive and anything similar to that in this also

    • @dreamsofcode
      @dreamsofcode  Год назад

      Dive is awesome! I'll have to do a video on it. Thank you for the suggestion

  • @abombfuenmayor
    @abombfuenmayor Год назад

    Awesome video. Thank you!

  • @ardawanx
    @ardawanx Год назад

    But these issues weren't about the docker rather the OS or software that being used. Also, using docker, opens up the opportunity to scan the OS, which it wasn't the case back in the day we just trust the server provider's OS without even scanning or ability to modify it as easy as docker Images.
    thanks for sharing the scanning tools though.

    • @dreamsofcode
      @dreamsofcode  Год назад

      Oh absolutely. Docker has been amazing but the complexity is still the main issue, and there's way more containers than base OS's now than there used to be.
      Fortunately, container scanning is providing a great solution and I agree, it's great that we can do it now.

  • @adam_pech
    @adam_pech Год назад

    Hello @dreamsofcode this is already new feature in Docker under function Docker Scout, am I right?

  • @sergioromano116
    @sergioromano116 Год назад

    Thanks for this video. I need to scan my containers 😅

    • @dreamsofcode
      @dreamsofcode  Год назад

      You're welcome! I was shocked what I found in mine!

  • @navaneeth6157
    @navaneeth6157 Год назад +1

    ❤high quality videos as always

  • @cheako91155
    @cheako91155 Год назад

    Just upgrading to the latest version brings in new features that must add new vulnerabilities. This is like sticking your head in the sand and then claiming you are now far away from the beach.

    • @dreamsofcode
      @dreamsofcode  Год назад +1

      You're not wrong. But the main difference is that those vulnerabilities are yet to be discovered by both malicious actors and maintainers. Once they're discovered they're likely to be exploited.
      Generally speaking, most of the people discovering 0-days are government affiliated organizations, which we have very little insight into, or security researchers, who tend to disclose as soon as they discover. Malicious actors rarely discover 0 days themselves and usually take advantage of poor upgrade cycles to exploit already known vulns.

    • @cheako91155
      @cheako91155 Год назад

      @@dreamsofcode Assuming malicious actors havn't read the source code is a mistake.

  • @OleksaBaida
    @OleksaBaida Год назад

    Is there any pros of using snyft+grype against snyk or trivy, for example?

    • @dreamsofcode
      @dreamsofcode  Год назад +1

      Syft is great for sboms so you'd probably use that by itself. I prefer Trivy over grype personally as it provides better scanning results, in my opinion. You can use Trivy direct, or with the sbom, which allows you to check it against already deployed services periodically.

  • @BD-hx9lf
    @BD-hx9lf Год назад

    which DE are you using ?

  • @agcodes
    @agcodes Год назад

    what desktop environment do you use ? (I know arch btw, whats the de)

    • @dreamsofcode
      @dreamsofcode  Год назад

      I record using Gnome, but I use sway for my day to day. Mostly my videos are just my Alacritty window which is themed with Catppuccin!

  • @jayjay7333
    @jayjay7333 Год назад

    Amazing video

  • @VitorDonnangeloCardoso
    @VitorDonnangeloCardoso Год назад

    I love you man

  • @spinoscythe
    @spinoscythe Год назад

    C++ Neovim with clangd pls!

    • @dreamsofcode
      @dreamsofcode  Год назад

      It's coming in 8 days!

    • @spinoscythe
      @spinoscythe Год назад

      @@dreamsofcode with clangd and cmake?

    • @dreamsofcode
      @dreamsofcode  Год назад

      @@spinoscythe clangd yes, cmake no. I'll be saving both Make and CMake for other videos.

    • @spinoscythe
      @spinoscythe Год назад

      @@dreamsofcode ok, ty for your efforts

  • @venkatrushivanga1025
    @venkatrushivanga1025 Год назад

    Which Desktop Environment you use on arch ?

  • @hades_2.042
    @hades_2.042 Год назад

    When video about Arch ?

    • @dreamsofcode
      @dreamsofcode  Год назад

      It's coming! Anything you'd like to see specifically?

    • @hades_2.042
      @hades_2.042 Год назад

      @@dreamsofcode How to achieve a comparable look, like you did with tmux and nvim. Your videos are very simple and well done, which helped me start playing with the previously mentioned programs.

    • @dreamsofcode
      @dreamsofcode  Год назад

      @@hades_2.042 my terminal is Alacritty and my theme is Catppuccin!

  • @tsukuyomin
    @tsukuyomin Год назад +2

    My containers are completely 100% safe
    - Me, 2023, running a couple of containers in --privileged mode

    • @tsukuyomin
      @tsukuyomin Год назад +1

      Before you ask, it's because it's needed to get hardware acceleration to work

    • @dreamsofcode
      @dreamsofcode  Год назад +1

      💀💀💀

  • @Ashaiksameer
    @Ashaiksameer Год назад

    Hey my eyes are paining😢 when was java configuration is coming😢😢please atleast tell me the date..
    😢😢reply😢

    • @dreamsofcode
      @dreamsofcode  Год назад

      It's still in the backlog I'm afraid! It'll probably be end of July early August. Thank you for being patient with me 🙏

    • @Ashaiksameer
      @Ashaiksameer Год назад

      @@dreamsofcode that long🥺🥺i thought next video💔💔

    • @dreamsofcode
      @dreamsofcode  Год назад

      @@Ashaiksameer it'll be worth it when it comes! ❤️

  • @marcuswest8085
    @marcuswest8085 Год назад

    Are you thinking of creating a container with your setup in it?

    • @dreamsofcode
      @dreamsofcode  Год назад

      This is a good idea.

    • @marcuswest8085
      @marcuswest8085 Год назад

      @@dreamsofcode Elliot old chap, I made a file for different coloured outputs....I find it helps with debugging. Running pdb from the Terminal is okay, although a bit knotty, but colour-coding my output, red, blue, yellow, green e.g.- def printblue(text):
      print("\033[34m" + str(text) + "\033[0m") - I actually find more effective for seeing what's happening when. Is there a plugin for this?

    • @dreamsofcode
      @dreamsofcode  Год назад +1

      @@marcuswest8085 I know there's a few color libraries out there for different languages output but I'm not sure of any plugins out there directly otherwise as you have to print the color codes. When it comes to container scanning, Trivy does a much better job for colorizing output

    • @marcuswest8085
      @marcuswest8085 Год назад

      @@dreamsofcode Unscrambling code is quite complex. Do you have a preferred technique? The terminal is (for me) way better than internally. I am edging towards your Patreon...lol

  • @orbital1337
    @orbital1337 Год назад +1

    Yup, this is not surprising to me at all. This is what happens when you take the responsibility of updating core OS components, libraries, and other parts of the environment away from the distro maintainers and sysadmins who are quite security conscious, and give that responsibility to the application developers who are not. The developers would rather just use something that they know works instead of updating.
    Software packaging is an unsolved problem - perhaps an unsolvable problem. Whenever people tell you that containers are the be-all and end-all of software packaging, remember that there is no such thing, only trade-offs.

    • @dreamsofcode
      @dreamsofcode  Год назад

      100%. I do believe adding this responsibility to automation pipelines helps sysadmins and maintainers to scale. But there will always be another cost or problem associated with that solution

  • @mabusugaming
    @mabusugaming Год назад

    I want your wallpaper

    • @dreamsofcode
      @dreamsofcode  Год назад +3

      It's really nice that one! Here's the link to it: www.freepik.com/premium-photo/colorful-background-with-blue-orange-waves_44749050.htm

    • @mabusugaming
      @mabusugaming Год назад +1

      @@dreamsofcode my Arch is a few steps behind to yours😁

  • @AdeaduraAdegbite
    @AdeaduraAdegbite Год назад

    But i don't know why

  • @frann8487
    @frann8487 Год назад +1

    I really like the way your videos are made but the topic was not that interesting

    • @regreegg
      @regreegg Год назад +3

      I respectfully disagree. I think all the topics are interesting, as they can get you thinking about something that's not occurred to you before

    • @frann8487
      @frann8487 Год назад

      ​@@regreegg You're right

    • @dreamsofcode
      @dreamsofcode  Год назад

      Thank you for the feedback. Is it the topic of docker that is uninteresting, or is it security / container image scanning?

    • @frann8487
      @frann8487 Год назад

      Also I believe that the vulnerabilities are caused by the software (libraries, packages, etc) running on the containers so this would apply to basically any machine that runs the same versions of the used packages?
      Another topic that would have fit is what happens if the app is deployed to a dedicated machine without container, wouldn't the same vulnerabilities still apply as the packages are still present?
      The topic itself can be interesting but in my opinion it did not go too deep into it, either way the videos are always high quality so I watch anyway, thank you for that

    • @dreamsofcode
      @dreamsofcode  Год назад

      @@frann8487 That's something I could have done better to explain! The main issue with containers vs traditional deployments though is you likely have a greater variety of docker base images. When it's just your app being deployed amongst others on a VM/Machine, then you only have to update the VM/Machine and all of the apps benefit. With containers, you'll need to update every container image explicitly.

  • @FauzulChowdhury
    @FauzulChowdhury Год назад

    This is the way 🦾