Docker Networking Tutorial, ALL Network Types explained!

Поділитися
Вставка
  • Опубліковано 29 січ 2025

КОМЕНТАРІ • 261

  • @esra_erimez
    @esra_erimez 3 роки тому +82

    Okay, watching this at normal speed!

    • @BenReese
      @BenReese 3 роки тому +2

      😂 I listened at 2x while vaccuming, but will definitely have to review again later for the mac/IP vlan stuff.

    • @tmagrit
      @tmagrit 2 роки тому +1

      Totally 🤣

    • @SitarHero28
      @SitarHero28 2 роки тому +3

      I thought I was in 2x speed lol.
      This dude knows his stuff.

    • @ivandrofly
      @ivandrofly 9 місяців тому +2

      I nearly reach the speed of light when speeded to 2x

    • @esra_erimez
      @esra_erimez 9 місяців тому +1

      @@ivandrofly 🤣

  • @c-pup
    @c-pup 3 роки тому +34

    Yet another great video! I've recently been struggling setting up two piholes on the same host and your explanation of macvlan was 1000% times more concise than every other forum that I've read through over the past couple days. Keep up the great work! Liked and subscribed!

  • @jayp9158
    @jayp9158 Рік тому +3

    Incredible video. I’m currently binge watching your channel and I’m amazed by the the quality of all your content. Keep it going man, you are great!

  • @D3M0320
    @D3M0320 3 роки тому +12

    Your videos are absolutely fantastic!! I used some of your tutorials to stand up docker / portainer on my raspberry pi to self host some things without having a potentially power hungry and noisy desktop running 24/7. I greatly appreciate the time you take to provide these wonderful videos!

    • @christianlempa
      @christianlempa  3 роки тому

      Thank you so much! I'm glad you like the videos :)

  • @PeterBatah
    @PeterBatah Рік тому +1

    I created a docker instance in VMWare ESXi and proceeded to follow your instructions. I could not get past the part where I assigned the newly created macvlan to an nginx container for example. The fix was to configure "Promiscuous Mode set to Accept" in my VMWare network settings. In case anyone should run into the same issue. Thank you for sharing Christian. Much appreciated as always. All the best in 2024.

  • @krisnrg
    @krisnrg Місяць тому

    This is probably one of the best explanations ive seen.

  • @datpspguy
    @datpspguy 2 роки тому +1

    i'll be completely honest, i was literally thinking about this and probably mentioned it out loud near my computer and "boom" this was in my homepage waiting. I was trying to figure out if I should build a lab using containers w/ static IP's or just use Virtualbox in bridged mode so this really helped me.

  • @DelightfulFullMoon-iy1dw
    @DelightfulFullMoon-iy1dw Місяць тому

    I can appreciate this video.... It has helped my understanding greatly... My only suggestion would be to be careful on use of the term "Host" it can be quite confusing to follow because at times When you say "Host" you are referring to the Docker engine itself as a"Host" to/of the Containers via various "Docker Networks" and their "Docker Network Drivers" other times you are referring to the "Host" as in the machine running/"Hosting" the Docker Engine itself, there is a difference between the 2 and it helps to know which one you are referring to when following along! This is important when you are discussing the "Host Driver" vs "MacVlan Driver" and "IP Vlan Driver" because the Host in which you are referring to is the Physical or Virtual Machine "Hosting" the Docker engine! Took me a while to make this distinction and as a result I WAS GREATLY CONFUSED for a good minute! 😂... All in all... Excellent video! 👏👍

  • @rathio7662
    @rathio7662 3 роки тому +1

    Hello Christian,
    your videos are great, from my side perfect to understand. Please stay tuned, I learned so much.

  • @talleycollins9353
    @talleycollins9353 Місяць тому

    As a newbie to understanding Docker concepts I can appreciate this video 👏.... It has helped my understanding greatly... My only suggestion would be to be careful on use of the term "Host" it can be quite confusing to follow because at times When you say "Host" you are referring to the Docker engine itself as a "Host" to/of the Containers via various "Docker Networks" and their "Docker Network Drivers" other times you are referring to the "Host" as in the machine running/"Hosting" the Docker Engine itself, there is a difference between the 2 and it helps to know which one you are referring to when following along! This is important when you are discussing the "Host Driver" vs "MacVlan Driver" and "IP Vlan Driver" because the Host in which you are referring to is the Physical or Virtual Machine "Hosting" the Docker engine! Took me a while to make this distinction and as a result I WAS GREATLY CONFUSED for a good minute! 😂... All in all... Excellent video! 👏👍

  • @umarchy
    @umarchy 2 роки тому

    Nice video cristian. The explanation was concise. Just learned about the macvlan through your video. Thanks.

  • @thegrimreaper156
    @thegrimreaper156 Рік тому

    I spent probably 3h figuring out how to assign another external IP to a Bind9 container, doing a lot of research and trying with ChatGPT.
    Found your video, solved in 5min !!!

  • @oppailover3087
    @oppailover3087 Рік тому

    Thank You man! I was just randomly watching this video and figured out how to solve port 53 issue for pi-hole in docker

  • @axreds
    @axreds 2 роки тому

    even if the video is 1 year old it made my day!!! Thanks Chris very clear and well done

  • @FinbarrAherne
    @FinbarrAherne 3 роки тому +4

    This is exactly what I was looking for! Thank you for the clear and concise explanations for all the different network configs, and also for stepping through each.

  • @shyamsfo
    @shyamsfo 28 днів тому

    Thanks!

    • @christianlempa
      @christianlempa  28 днів тому

      Thank you so much for the support 🙏☺️

  • @HideBuz
    @HideBuz Рік тому +2

    Finally somebody who explains that stuff clearly and without jargon! Thank you so much for your contributation!

  • @HiltonT69
    @HiltonT69 3 роки тому +5

    This is a great, clear and concise explanation of these different network types. :)

  • @ivandrofly
    @ivandrofly 9 місяців тому +1

    4:21 - DNS limitation by using the DEFAULT bridge network
    6:20 - network troubleshooting docker image
    10:51 - mentioned about PI-hole (adguard like) issue

  • @jeytis72
    @jeytis72 3 роки тому +4

    Great job, Christian. Very clear and informative... as always. Thanks

  • @alex.username
    @alex.username Рік тому

    What a concise, well structured and informative video!

  • @xcaptz
    @xcaptz 3 роки тому +3

    So amazing, this video saves me a lot of research 🧐. Well, thanks a lot bro!

  • @Ellyll
    @Ellyll 2 роки тому

    This video was really helpful for me to get a nice quick understanding of docker networking, thank you!

  • @jakedeng2288
    @jakedeng2288 2 роки тому

    very useful video, I solved one of my docker issues right after watching this!

    • @christianlempa
      @christianlempa  2 роки тому

      Thank you! :) Glad you could solve some issues with it!

  • @ErickWarden
    @ErickWarden Рік тому

    Earned a subscriber with this one!! This helped me fix my Docker home assistant network problem!

  • @GlenMillard
    @GlenMillard 3 роки тому

    I just started watching and I hope this lands nicely! You sound exactly like 'Klaus' on 'American Dad'
    I love the show, by the way.
    Now I'm going to watch your video!

  • @rrr92462
    @rrr92462 Рік тому

    Excellent video. Great examples and explanations.

  • @Error_404-F.cks_Not_Found
    @Error_404-F.cks_Not_Found 3 роки тому

    Best docker video i've watched. Super informative.

  • @dakzer55
    @dakzer55 3 роки тому

    Thank you for this refresher on docker networking. Has fixed my issue with trying to get HADR for Sql Server instances running in docker

  • @derBerg
    @derBerg 3 роки тому +1

    VIelen Dank! Ich kann nicht verstehen, wie Menschen hier downvoten..
    Very interesting! As a guy having a new job in IT as a career changer i need to close alot of knowledge gaps of stuff which seems to be common sense in IT. I like your style!

  • @yoddy0
    @yoddy0 Рік тому

    Thanks for the insight on the various network drivers on docker. I blindly used a macvlan from a tutorial for pihole but wanted to understand how it works.

  • @konsti300
    @konsti300 5 місяців тому

    Thanks for explanation of Host Network. Your my Man, you saved my Day/Night :)))

  • @localadm
    @localadm 3 роки тому +3

    this is very good stuff, well explained. going to check that with dockerized pi-hole or adguard. thanks a bunch!

  • @lordv8dr
    @lordv8dr 11 днів тому

    This was extremely helpful. Thank you !

  • @radiowolf80211
    @radiowolf80211 3 місяці тому

    Thanks for the video! I needed this one.

  • @josel82
    @josel82 2 роки тому

    Really good video. Very well explained and well produced. You got yourself a new suscriber 👍🏽

  • @GlenMillard
    @GlenMillard 3 роки тому

    Now I have watched your video - it was very informative. Thanks much for this. Much appreciated! 😎😎

  • @yaroslavozerov1121
    @yaroslavozerov1121 Рік тому

    Bro! Thanks for the video, but the biggest thanks for picture on your t-shirt! I had such poster on my wall in 90th! That's awsome))

  • @pierrer3109
    @pierrer3109 2 роки тому

    Thanks ! Great explanations. Have a nice day

  • @giovannipetroselli6103
    @giovannipetroselli6103 3 роки тому

    Very clear and precise. All your videos are amazing. Thanks Cristian!

  • @lpfigue
    @lpfigue 5 місяців тому

    Thanks a lot. I'm using syncthing in docker and the connection was always over relays. Using the host network driver solved the problem and now is over tcp lan.

  • @FabianoChagas
    @FabianoChagas 2 роки тому

    Awesome as always! Thanks for sharing

  • @HewaSaleem
    @HewaSaleem 2 роки тому

    Moin Moin,
    Best explanation ever! keep up.

  • @rapha5586
    @rapha5586 5 місяців тому

    Nice video!! Am considering to use vlans of my router rather than a custom docker network to seperate dockers / services from each other. But I wonder that the benefits of that really would be? I can use the firewall for more granular interlan access rules but would also increase the load my firewall. Appreciate any insights ❤

  • @paulkalus41
    @paulkalus41 2 роки тому

    Hi Cristian, this is a another great video. The Macvlan part is something I've been searching and searching for, always coming to a dead end. The way you have explained and demonstrated it is spot on and has solved my issues, and I've actually learned something! :)

  • @xseman
    @xseman 2 роки тому

    simple explanation even with examples, great stuff!

  • @John._.T
    @John._.T 2 роки тому

    Really informative. Just stumbled on to your channel. Fast paced and great information. Just managed to keep up as I'm completely new to docker. Subscribed to your channel. Thanks 🙂

    • @christianlempa
      @christianlempa  2 роки тому +1

      Thank you! Hope you find some useful stuff here :)

  • @majidalikhanquaid984
    @majidalikhanquaid984 2 роки тому

    Clear and too the point, that's what I was looking for !! Thank you so much

  • @zuberkariye2299
    @zuberkariye2299 3 роки тому +1

    I am into 4 mins in the vid now, and I love it already, I am just learning docker and I never thought that docker could have a network(IP) since it runs on top of the OS. Gonna add this to my list of docker reference in the future.

  • @lakshminarasimmanv
    @lakshminarasimmanv 2 роки тому +1

    it would be helpful if you can make a dedicated video on overlay networks and try to install Traefik and Portainer in swarm mode.

  • @RamiKattan
    @RamiKattan Рік тому

    Nice tutorial, I knew a lot about networks in docker but learnt a couple of things, including the netshoot container, very useful.
    Something that was not mentioned: macvlan containers can't reach bridge containers with their internal IP address (172.16.x.x), they can only reach the host ip and port, is this correct?
    I created a traefik container and bound it to macvlan to make it get a distinct IP address, but it was unable to reach any container until I added a second network for traefik on the bridge network.

  • @marcoroose9973
    @marcoroose9973 3 роки тому

    Thanks for this video and especially for the netshoot hint. This was something I missed a lot - until now ;-)

  • @zhitoooo
    @zhitoooo Рік тому

    short, useful , great, awesome thanks alot

  • @PaulDickson7
    @PaulDickson7 2 роки тому

    Great video, started watching network chucks got confused and came to your video. Makes a lot more sense. Couldn't find your cheat sheet in Github though :(

    • @christianlempa
      @christianlempa  2 роки тому +1

      Thanks, mate! Sorry, the cheat-sheet is still a work in progress.
      github.com/xcad2k/cheat-sheets

    • @PaulDickson7
      @PaulDickson7 2 роки тому

      @@christianlempa All good thank you for putting the time to explain everything in this video. It was clear, concise and easy to follow. I literally spent my weekend going round in circles with Docker networking only to give up and delete everything and start again.

  • @RockTheCage55
    @RockTheCage55 Рік тому

    Hi Christian this has been excellent. When you created the macvlan why did you specify it on a different subnet '/32'?

    • @christianlempa
      @christianlempa  Рік тому

      thank you! :) subnet /32 basically means "1" address

  • @thomasreedy4751
    @thomasreedy4751 2 місяці тому

    Great explanation. I noticed a lot of people say you shouldn’t make the macvlan ips static … or at least minimize the static ips.
    Are the only required static IPs you would need be a reverse proxy manager and a recursive DNS server?
    You should be able to reference the host/container name in the proxy instead of an IP if the container is on the same network.
    However the dns server will require an IP for the reverse proxy and the recursive server.
    Is there another way?

    • @christianlempa
      @christianlempa  2 місяці тому +1

      I think it really depends on the setup. For services like a reverse proxy, DHCP or DNS, static IPs are always recommended. I don't know why you should avoid static IPs?

  •  3 роки тому +8

    "Who needs swarm?'" everyone who wants a simple cluster running one command "docker swarm init"

  • @mal-avcisi9783
    @mal-avcisi9783 Рік тому

    this guy knows his shiat. bravo !

  • @davidsomething4867
    @davidsomething4867 Рік тому

    Just getting started with docker and loving it. One thing I am struggling with is getting IPvLAN L2 working with fixed IP addresses through compose when the ipvlan already exists on the host, jus seem to get one error after another when specifying the existing network. I've got multiple USB interfaces on a debian instance loaded on a PC and am using IPvLAN as alternative to macvlan and having to setup promiscuous mode although I have macvlan 802.1q working on another host so I have no issue with the concept and have a good understanding of networking as a whole. I've setup an ipvlan with fixed addresses for a ipam container with a separate container for the database and this works no problem but I had to setup the containers the old fashioned way.

  • @jlamoree
    @jlamoree 2 роки тому

    This was very helpful. Thank you!

  • @Eratzer
    @Eratzer Рік тому

    Thx macvlan is what i needed for some containers

  • @anikrahman9871
    @anikrahman9871 2 роки тому

    Your video is fantastic

  • @liquidintegrity
    @liquidintegrity 2 роки тому

    Wow. Just wow. Thank you!

  • @AlejandroRodriguez-wt2mk
    @AlejandroRodriguez-wt2mk 2 роки тому

    wonderful work

  • @AnythingGodamnit
    @AnythingGodamnit Рік тому

    Loved this, thank you. I now feel like I have the knowledge to solve my current Docker networking problem - excited to try!

  • @donya_ayandeh
    @donya_ayandeh 2 роки тому

    You're wonderful 👍

  • @cloud2050
    @cloud2050 2 роки тому

    Great video! You cleared up my confusion on docker network. BTW! What are you using to show the AD block statistics in your browser startpage?

  • @SebastianMBraun
    @SebastianMBraun Рік тому

    What ist your terminal you use in 17:19? I like it!

  • @keleitangpusen1560
    @keleitangpusen1560 2 роки тому +1

    Hi, can macvlan take effect in the virtual machine, after I configure macvlan in the VMware virtual machine, the container cannot ping any ip or even the host

    • @thulasiramteja8581
      @thulasiramteja8581 2 роки тому

      which os did you use for hosting??

    • @keleitangpusen1560
      @keleitangpusen1560 2 роки тому

      @@thulasiramteja8581 Ubuntu

    • @thulasiramteja8581
      @thulasiramteja8581 2 роки тому

      @@keleitangpusen1560 please try with CentOS 7 using command
      Sudo ip link set enpos3 promisc on and it worked
      But in CentOS 8 and Ubuntu 16.04 above the command didn't works still i didn't get the solution but try on CentOS 7 the ping will work

    • @thulasiramteja8581
      @thulasiramteja8581 2 роки тому

      And also turn on promiscuous mode "allow all" in bridge mode in vbox settings

  • @cjntrade4717
    @cjntrade4717 2 роки тому

    Awesome brother

  • @jameshunt5184
    @jameshunt5184 2 роки тому

    Awesome video, really liking your content 🔥 I was wondering if you could help clear up something. In portainer I'm able to change the network of a container to 'container' mode that allows me to run containers through another containers network. In my case I run containers through a VPN container. However how is this done in a Docker compose file?

  • @mikekane9734
    @mikekane9734 2 роки тому

    Interesting! What type of network should I use for my home server setup and run containers behind wireguard client for my torrenting?

    • @christianlempa
      @christianlempa  2 роки тому

      Depends on if the wireguard is in docker as well or not.

  • @christofferahlback
    @christofferahlback Рік тому

    Great video! Thanks! I’m on a mac and have had a gard time getting ipvlan to work over the wifi. As for now, I just need some containers for development tools (web dev) and would really like to get their own ip-numbers rather than running them as localhost… seems like it’s not as easy on Mac OS as in Linux at the moment. Any ideas? Cheers!

    • @christianlempa
      @christianlempa  Рік тому +1

      hmm I've not tried it out unfortunately, only used it on linux

  • @okoeroo
    @okoeroo 3 роки тому

    Excellent explanation

  • @coolglass6672
    @coolglass6672 2 роки тому

    Great videos dude! can i ask why Owasp says we should set ICC to false? I am guessing they just mean they want us to use custom networks?

  • @nicoladellino8124
    @nicoladellino8124 Рік тому

    Very nice video, THX.

  • @jslegers1973
    @jslegers1973 Рік тому

    Thank you Christian for this great explanation. I do have a question is it possible to have a container in two networks? I'm trying to create a compose file with PiHole and Unbound. The Pihole has a macvlan for my network and also a bridge to communicate to unbound. But every time I want to compose it the bridge network on the PiHole gives an error Cannot start service pihole: No available addresses on this pool. IS it even possible to create a container in two different networks?

    • @christianlempa
      @christianlempa  Рік тому

      Thank you! :) It's possible to add a container to more networks, but I'm not sure how that works with a macvlan.

  • @psicodelico6
    @psicodelico6 3 роки тому

    Greetings from Argentina

  • @mdawas1986
    @mdawas1986 Рік тому

    Hello Christian,
    Many thanks for the video
    where is the cheat sheet located, I visited your github and I cant find it, seems you have changed the location since your video
    hope you can share link
    thanks

  • @sidharthanp5163
    @sidharthanp5163 2 роки тому

    Great video.

  • @wieliewiel2630
    @wieliewiel2630 3 роки тому

    Great video!

  • @spop1974
    @spop1974 3 роки тому

    Great stuff! Thanks!

  • @jmtfreelancer4473
    @jmtfreelancer4473 2 роки тому

    Hello, Your video is what i needed . But I woul dlik eto do the same on MAC OSX . what is the solution to have two static IP on my HOST OSX?

  • @mr.wayfarer6082
    @mr.wayfarer6082 2 роки тому

    Much appreciated, sir. Home Assistant and Plex containers conflict listening the same 1900 port while running on bridge connection fe

  • @fbifido2
    @fbifido2 3 роки тому +1

    1. Can you modify the default bridge (name, ip, subnet, type) ?
    2. When you create a custom network, how do you tell it what type to create, ip-range, subnet, etc...
    3. Type shown: Host, Bridge, Null?, macvlan, ipvlan. Are there more ?
    4. Can you change the default bridge that docker use for new containers?
    5. Can any of these network do dhcp ip reservation using mac-address, or support static ip-address?
    6. Does any of the network support ipv6, default seems to be ipv4?

  • @sbkpilot1
    @sbkpilot1 Рік тому

    Great video! One thing I noticed is that in WSL2 with Docker Desktop the behavior is rather different - when you create a new bridge network there is no interface created. I wonder how it works in this case.

  • @NetanelZZZ
    @NetanelZZZ 2 роки тому +1

    That search-result seemed to be the answer to all my problems; I'm running PhotonOS ( docker environment for ) on my ESXi and just cannot figure that out. I cannot ping the host, nor does it seem like it got to talk to my router ( according to the devices list ).
    How should I debug this?
    I tried to enable promiscuous mode for the vmswitch but it is still not working.

  • @ricoshen18
    @ricoshen18 10 місяців тому

    great job.

  • @victoryosikwemhe2280
    @victoryosikwemhe2280 2 роки тому

    Nice. Just a quick question, if we can ping a device (in a macvlan network) from another device in a spearate network, why is the scope local?

  • @EmilioAyala
    @EmilioAyala 2 роки тому

    do you have a color preset? loving the purple on black.

    • @christianlempa
      @christianlempa  2 роки тому +1

      Yes, I have it for Windows terminal on my github Repo dotfiles-win

  • @annahri
    @annahri 3 роки тому

    You can just drop grep and use `ip a ` instead

  • @banalidadesculturapop
    @banalidadesculturapop 3 роки тому

    Hey I I love your content and im learning a lot , can you please advise , How should the network from traefik be configured if i want it to also ping another internal server ?

    • @christianlempa
      @christianlempa  3 роки тому +1

      It depends where the server is running, if it's on the same host you should be able to connect via bridge network, otherwise you might checkout host mode.

  • @marcin6386
    @marcin6386 4 місяці тому

    Thank you so much

  • @DaleRossNET
    @DaleRossNET Рік тому

    I commend you for a good video. Unfortunately, macvlan doesn't work so well on windows with WSL.

    • @christianlempa
      @christianlempa  Рік тому

      thanks, yeah that's a known limitation in wsl due to the vm network layer

    • @DaleRossNET
      @DaleRossNET Рік тому

      @christianlempa I figured it out. WSL2 as a mirrored network setting.
      Again, good video

  • @nicoladellino8124
    @nicoladellino8124 3 роки тому

    Nice video, TNX

  • @elmarulian
    @elmarulian 3 роки тому

    Hello! awesome videos as always, I'm struggling to achieve two docker hosts on a physical server that has two ethernet ports, on of the hosts should expose a service in one of the ethernet ports and the other host should connect and receive data from services in the other port, this is an overlay network use case for what it looks like, or is there another way?

    • @elmarulian
      @elmarulian 3 роки тому

      Or is the macvlan the key to attach some containers to a physical network and other containers to another physical network?

  • @mateusjunior1937
    @mateusjunior1937 3 роки тому

    HI Always a big fan of your tuto, i´m wondering, can you advise me a good open source on-premise cloud ?

    • @christianlempa
      @christianlempa  3 роки тому +1

      I've never considerd using this, but you might take a look at OpenStack.

  • @stevefxp
    @stevefxp 2 роки тому

    I am a tech professional of over 35 years and I am learning Docker on my own. I understand networks well but in beginning to think about how I want networks deployed.
    I would prefer having a subnet that is container only. If I did this would I still use bridge or macvlan driver?

  • @JelmerBoumaJeebeevee
    @JelmerBoumaJeebeevee 3 роки тому

    Hi, first I love this and the other videos. Just a question.
    Is it possible to do this in docker-compose? And how do I do that?
    I tryed it but it did not work for me.
    Keep up the good work.

    • @christianlempa
      @christianlempa  3 роки тому

      Sure, Docker-Compose offers the same features. Btw, when you create a docker-compose stack it will automateically create a new bridge network for your Docker compose, but you could also assign existing networks to your containers by defining it in the file.

  • @sergiisuprun
    @sergiisuprun Місяць тому

    docker swarm good for small proj