Docker Compose Tutorial

Learn all about Docker Compose so you can orchestrate your services with confidence!
- Get the complete Docker course (zero to hero): bit.ly/3sO7Z5H
- Subscribe for more Docker tutorials like this: goo.gl/6PYaGF
⭐️ Want to learn more from me? Check out these links:
Courses: codewithmosh.com
Twitter: / moshhamedani
Facebook: / programmingwithmosh
Blog: programmingwithmosh.com
#Docker #DevOps
Docker is the de facto standard for building, shipping and running applications in a consistent manner. That's why most companies use it and are looking for developers with Docker skills. If you're looking for a career in software or DevOps engineering, you must have Docker on your resume. And not only that, you should know it well and be able to use it to effectively package and deploy your applications.

Пікірлер: 427

  • @Sarah-zj7ve
    @Sarah-zj7ve2 жыл бұрын

    Just starting my coding journey and found your website and courses by accident. Couldn't be more thankful for what you have put together. You're such a gifted teacher! Learning SO much thanks to you!! :)

  • @edwinchiboko3737

    @edwinchiboko3737

    Күн бұрын

    did you get the zip file?

  • @leahaimovich7221
    @leahaimovich72215 ай бұрын

    thank you!! where is the zip file you mantion in 5:54?

  • @RajKumar-ts7fk
    @RajKumar-ts7fk2 жыл бұрын

    Finally the legend is back 😎

  • @programmingwithmosh

    @programmingwithmosh

    2 жыл бұрын

    Thank you! Please support me by liking and sharing this video. :)

  • @RajKumar-ts7fk

    @RajKumar-ts7fk

    2 жыл бұрын

    Learning is a continuous process

  • @tanveerahmad5996

    @tanveerahmad5996

    2 жыл бұрын

    Absolutely mosh!..

  • @billvvoods

    @billvvoods

    2 жыл бұрын

    Done :-)

  • @Sal-bm4mw

    @Sal-bm4mw

    Жыл бұрын

    @@programmingwithmosh Hello Sir! How can I Unsubscribe Code with Mosh? I've Completed My courses. Thanks a Lot!

  • @harishpalsande9084
    @harishpalsande90842 жыл бұрын

    I have learned everything from watching your video. You are my teacher I watch your video at least once a day. A lot of people are learning because of you Thank you very much 🙏

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

    You're the frickin' BEST teacher here, Mosh! Man, if I become a IT teacher one day, I hope I can be like you! You explain everything so clearly, you seem to understand what people need to get something. That comparision you did beetween json and yaml what GOD TIER. I bought you Redux course and IT WORTH EVERY CENT!

  • @nuttchokwittaya8225

    @nuttchokwittaya8225

    Жыл бұрын

    How can you find the code?

  • @edwinchiboko3737

    @edwinchiboko3737

    Күн бұрын

    did you get the zip file

  • @nothingwithoutthis5021
    @nothingwithoutthis50212 жыл бұрын

    I really enjoy and appreciate all your work, you make the world better with your courses where you combine all necessary knowledge and tools for programming. I really love programming and, for sure, you made me love it! Peace and Love from Ukraine!❤️

  • @kimiatahernejad5833

    @kimiatahernejad5833

    Жыл бұрын

    Did you find the zip file?!!

  • @user-rj8yv5nz3f
    @user-rj8yv5nz3f8 ай бұрын

    thank you Mosh for your high quality and amazing tutorials. wish you the best.

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

    Thank you so much for this wonderful tutorial

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

    0:00 Intro 0:27 Running Multi-container Apps (intro) 1:16 Installing Docker Compose 2:30 Cleaning Up our Workspace (delete containers and images) 5:39 The Sample Web Application 8:50 JSON and YAML Formats 13:00 Creating a Compose File 21:58 Building Images 25:38 Starting and Stopping the Application 27:49 Docker Networking

  • @hitsharnam3177

    @hitsharnam3177

    Жыл бұрын

    Where is that bloody zip file?

  • @md.emranhossain9475

    @md.emranhossain9475

    Жыл бұрын

    how can I get the ZIP file?

  • @levan7314

    @levan7314

    11 ай бұрын

    where is zip? can you please link?

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

    I couldn't be more thankful for what you do!

  • @ahsaanali4512
    @ahsaanali45122 жыл бұрын

    This video cleared my doubts, love the content.

  • @theghacker1824
    @theghacker18242 жыл бұрын

    You are the best teacher ever you explain once and I allredy understand.😄😄

  • @pheellomolokoli7384
    @pheellomolokoli73842 жыл бұрын

    You're a life saver Mosh, this is just what I was looking for💯

  • @edwinchiboko3737

    @edwinchiboko3737

    Күн бұрын

    did you get the zip file

  • @5335resan
    @5335resan2 жыл бұрын

    I like your tuts very much dude. Simple but practical

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

    I only appreciate your lectures after going through the ones done by others. This guy is a genius teacher.

  • @edwinchiboko3737

    @edwinchiboko3737

    Күн бұрын

    did you get the zip file

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

    Regarding JSON vs YAML: It's not only about performance, but also about validation and security. If you, e.g. copy+move some lines from a JSON file to another location, most likely, the JSON will be corrupt and incorrect, and if not, it's very likely, the order didn't matter anywhere. That's good behaviour for anything that mainly computers operate, as such a copy+paste error easily happens while editing (or merging with git), but might not be reviewed by (many) humans, so might be undetected for a long time. In YAML, there is a good chance, randomly moving blocks around, the end result is a different, but still correct YAML. Indeed, that's such a common error, that for bigger projects you usually have to write an own linter for the yaml files checking e.g. if the keys are the expected ones. Regarding security: YAML specification is a bit bigger than XML, so it contains a lot of hard to implement and possible insecure options. That's why many first naive implementation of YAML parsers in programming languages were replaced over time by other parser only implementing a secure subset of YAML. (Or alternatively that's tackled by the custom linters you have to write anyway) There are some other subtle problems with YAML, e.g. your question of why you have to put "3.8" in quotes is because otherwise it would be detected as float und depending of whether can be represented in binary internally exactly or only close to it (indeed, 3.8f == 3.7999999523162841796875). The easiest way to enforce consistency is to demand that the version is always a string and not sometimes a string (3.8.0 == "3.8.0"), sometimes a float (3.8 == 3.7999999523162841796875) and sometimes an int (4 == 4). There are many more subtle possibilities to misinterpret the unquoted strings: Magic words like true or false are becoming booleans. A minus sign is very often interpreted as list start, several further characters like +, |, also have special meanings and so on. When in doubt, always put your strings into quotes, from a practical standpoint that the system should what we want to say in the yaml, even though readability is reduced. That's why, where high predictability is wanted, often enough different formats are used with less surprisings. E.g. HCL for Terraform, Programming languages for Pulumi, AWS CDK, ... or just toml/ini files. Anyway, the high readability, easy understanding and universal structure of YAML dominates pretty much every modern stack, so the solution to all the above problems are custom linters and performant YAML parsers (most often with an own subset or dialect). BTW, JSONs have disappointing also ambiguities that can even be exploited, e.g. the spec does not tell anything what should happen if a key is duplicated (which value to take). Different parsers handle that differently, and for the right combination, you can pass the validation done by the first parser to then inject some malicious (or just unintended, unwanted) behaviour to the second parser.

  • @weirnershittler6752

    @weirnershittler6752

    10 ай бұрын

    Thanks for the info man

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

    You are AMAMAMAMAZING Mosh.. God Bless you for the free stuff!

  • @faizanvanekar7882
    @faizanvanekar78822 жыл бұрын

    It would be great if you could make a course on Devops tools ( Open source tools ) with the CI /CD Pipeline.

  • @DrWebDev
    @DrWebDev2 жыл бұрын

    Thank You Mosh! I'm gonna take your course!

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

    thank you so much for shaing your knowledge in an intersting way

  • @potatocoder5090
    @potatocoder50909 ай бұрын

    Hello Mosh! Thank you for making these amazing tutorials. Could you please link the zip file that you are referring to in this video so that we can follow along? Thank you!

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

    Congrats ! The course is awsome ! Thank you :)

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

    If you are wondering why the version number is string, it's because version can be something like 3.8.1 which is not a number.

  • @alienmars1
    @alienmars19 ай бұрын

    Thank you for this tutorial, I was having problems until I saw your video thank you very much

  • @skippo566
    @skippo5662 жыл бұрын

    I really enjoy ur videos with great understanding, I want to be a software developer but I don't know which programming language to learn first, and where to start 😶

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

    This was really helpful. Thank you.

  • @kywei7485
    @kywei74855 ай бұрын

    Thank you Mosh, you always make good tutorial!

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

    Really great videos , well explained , just awesome !

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

    Really appreciate your content Mosh!

  • @myominhann138
    @myominhann1389 ай бұрын

    Great explained. Thank you so much.

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

    I hope you will continue and thank you very much you are my teacher

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

    Great tutorial , that helped me well Thanks

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

    Thanks for your excellent video!! Where I can download the files did you use in your examples?

  • @kitersrefuge7353
    @kitersrefuge73538 ай бұрын

    Superb Mosh-jan. Thank you. I say this without prejudice. Content is fluid, it stops to point out significant landmarks without cluttering, and therefore the duration is also tolerable in this age of millisecond attention spans. I learned a lot and refreshed a lot.

  • @edwinchiboko3737

    @edwinchiboko3737

    Күн бұрын

    did you get the zip file

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

    thanks Mosh. as always, great tutorial.

  • @ganeshkamtam2234
    @ganeshkamtam22342 жыл бұрын

    Really really it's great to see u on live ❤️❤️

  • @gunasamayamanthula7129
    @gunasamayamanthula71292 жыл бұрын

    Happy to see you brother!! Love from India 😍

  • @user-rg6qw2mi1d
    @user-rg6qw2mi1d Жыл бұрын

    good stuff. thank you. now the world needs your take on svelte!

  • @QuantumFn
    @QuantumFn2 жыл бұрын

    I learned so much from your 6 hours python course .Thank you so much Mosh🙏

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

    what a great content! so grateful to you

  • @viniciuscardoso5271
    @viniciuscardoso52712 жыл бұрын

    Mosh we are so glad to see you're back

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

    so proud of You Mosh ! I'm from Iran , Hamedan too. !!

  • @paulclarke4099
    @paulclarke40992 жыл бұрын

    Flutter tutorial please, we have all been waiting so long for that 😀👍

  • @odaakeenya
    @odaakeenya5 ай бұрын

    Thank You Mosh. This tutorial was great!

  • @leomysky
    @leomysky10 ай бұрын

    Thank you for the explanation

  • @MrWeb-dev
    @MrWeb-dev Жыл бұрын

    You're an excellent tutor.

  • @EruaMedia
    @EruaMedia2 жыл бұрын

    my king mosh i love you so so much, you taught me how to be the best programmer big love from africa Ethiopia.

  • @programmingwithmosh

    @programmingwithmosh

    2 жыл бұрын

    Thank you! Please support me by liking and sharing this video. :)

  • @atharvbudhe6756

    @atharvbudhe6756

    Жыл бұрын

    @@programmingwithmosh Where is the Zip file? 5:56 ????

  • @RichardBronosky
    @RichardBronosky3 ай бұрын

    This was one hell of a great video. You have a great teaching style. You are VERY clear in your explanations. And best of all, your screen captures are MOBILE-FRIENDLY. This video was missing the 1 thing I came looking for, but I am glad I watched the whole thing. Liked. Subscribed. Will look over your courses and purchase any that are remotely relevant to my needs. ☮❤🌈 PS: What I needed was how to do a "reverse port map/access". That is, I need initiate "from contain to host", instead of the "from host to container" that is explained EVERYWHERE. I have since learned this is done via `docker run --add-host=host.docker.internal:host-gateway` or in docker-compose.yaml `extra_hosts: ["host.docker.internal:host-gateway"]` Then [for example] your container can access the CUPS printer on your host machine via port: 631 on host: host.docker.internal

  • @bombswabs3041
    @bombswabs30415 ай бұрын

    Being a metalhead for decades. I just found my new favorite person and that guy's name is Mosh! \M/

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

    Nice tutorial, thanks. It's full of valuable information.

  • @Avvaball__my_Teleqram_id

    @Avvaball__my_Teleqram_id

    Жыл бұрын

    👆send a direct message for support and guidance

  • @DaliyTv
    @DaliyTv2 жыл бұрын

    Thanks for this tutorial!!!

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

    This guy is thug, everything is easy in his world. Thanks so much for all the effort Moch!

  • @behdad0979
    @behdad09792 жыл бұрын

    You're the best mosh ❤️💙

  • @EH-yl5ex
    @EH-yl5ex2 жыл бұрын

    Thanks, very useful. Well done.

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

    Thanks for this wonderful tutorial. I'm trying to follow however could not find the link to download the zip file.

  • @bharat_thapa_
    @bharat_thapa_2 жыл бұрын

    I just want to let you know that your courses are top class. One improvement I would like to see in your course is the project you develop during the lectures. Even though *Vidly* is really a good project, I would like to see much complex project than that. Maybe an e-commerce project. Point is: you have tons of cool techniques to improve the quality of code which we can learn from your experience.

  • @tawfikelmouttaqi7415

    @tawfikelmouttaqi7415

    2 жыл бұрын

    Where can I find the Vidly zip file ?

  • @BradleyCrum82
    @BradleyCrum822 жыл бұрын

    Great work and thanks again! I like that VS Code editor color scheme. What is that called?

  • @tanveerahmad5996
    @tanveerahmad59962 жыл бұрын

    Your are the best "mosh".. no one can beat you

  • @programmingwithmosh

    @programmingwithmosh

    2 жыл бұрын

    Thank you! Please support me by liking and sharing this video. :)

  • @brendalessaalmeida1213
    @brendalessaalmeida12137 ай бұрын

    Amazing tutorial! i'm so tired of just stackOverflow codes without explain, thanks so much!

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

    Great Video. I am new to docker compose. I tried the same steps as per your docker compose file but gut this error. nable to prepare context: path "./frontend" not found does VS Code follow indentation?

  • @grahamstreet6537
    @grahamstreet65377 ай бұрын

    Fantastic course

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

    I love your tutorials

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

    at 5:50 you say that below the video is a zip file, but there is no zip file.

  • @azamkhujaibragimov5597

    @azamkhujaibragimov5597

    Жыл бұрын

    I looked for the zip file as well but couldn't find

  • @waleabdulhamid4522
    @waleabdulhamid45222 жыл бұрын

    Hey Mr Mosh.....thank you for everything you are doing?? I want to know how I can go about registering for your course and how much it costs

  • @rehmansaifmohd
    @rehmansaifmohd2 жыл бұрын

    You're a Pro, Mosh! Thanks vm

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

    just wondering where the zip file is located??

  • @edwinchiboko3737

    @edwinchiboko3737

    Күн бұрын

    yeah... same here!

  • @tragchamp453
    @tragchamp4532 жыл бұрын

    I was waiting for this ep. and enjoyed it!!!!! :DDDDD But can you please make a c++ beginner tutorial?

  • @Julian-tf8nj
    @Julian-tf8nj2 жыл бұрын

    super helpful, thanks!

  • @tonychen8713
    @tonychen87138 ай бұрын

    讲的真好。

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

    Hi there I wanted to find out if you also do Cyber Security tutorials just started my course and your Python and Java tutorials have helped tremendously. Hope to hear from you soon.

  • @anisprodhan1212
    @anisprodhan12122 жыл бұрын

    thank you mosh ...lovely !!

  • @Noor-Mohammed-S-248
    @Noor-Mohammed-S-2482 жыл бұрын

    Need more videos on docker Thanks!

  • @IslahMusleh
    @IslahMusleh2 жыл бұрын

    Where can I find the zip file for backend and frontend projects mentioned in the video?

  • @dmytroshchotkin2939

    @dmytroshchotkin2939

    2 жыл бұрын

    Same question here =(

  • @miked5444

    @miked5444

    2 жыл бұрын

    I don't know either so replying here so hopefully I get a notification if someone tells you.

  • @oladipotimothy6007

    @oladipotimothy6007

    Жыл бұрын

    Purchase the course

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

    0:33 multi container application 1:21 Docker compose 1:29 Docker compose Install 1:50 Docker compose to verify 2:20 Install Docker Compose 2:34 Cleaning Up Our Workspace 2:46 Remove Images 3:30 Remove Containers 4:16 Remove the Images 4:52 Troubleshoot 6:12 Run the application outside of Docker 8:32 Docker Compose YAML 9:01 Data JSON 10:31 Convert this to Yaml 12:56 Compose Files 13:16 Create a new compose file 14:18 Services 15:35 Docker File 17:19 Port mapping 20:06 Volumes 21:54 Build the Image 22:53 No cache 25:32 Starting the Application 25:41 Start an Application 27:33 Docker Compose Down 27:51 Networking in Docker 30:09 DNS Resolver 32:29 Viewing Logs

  • @KlausbergerYT

    @KlausbergerYT

    Жыл бұрын

    Thanks for that, was looking for this. @programmingwithmosh you should add this to your description.

  • @user-cs9qn4il6x

    @user-cs9qn4il6x

    6 ай бұрын

    @@KlausbergerYT too basic, see above.

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

    Great video, Thank you!

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

    Hi, what are your terminal configurations for the highlighted autocomplete? Thanks.

  • @TestAutomationTV
    @TestAutomationTV6 ай бұрын

    Thanks for sharing, it was a useful video.

  • @ganeshkamtam2234
    @ganeshkamtam22342 жыл бұрын

    Big fan of you 🔥

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

    Hi Mosh, what IDE are you using and is it on Mac or Windows? Thanks

  • @alishahidi1053
    @alishahidi10537 ай бұрын

    im from iran and thanks for your very nice course

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

    hi moshi, long time , you the best man

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

    Thanks for sharing

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

    Thank you so much for this precious tutorial. You talked about a zip file. Please, where can we get it so that we can follow up what you are teaching us? THANK you again!

  • @cran6166

    @cran6166

    Жыл бұрын

    Do you get the answer yet?i still couldn’t find it as well

  • @nanayaw7159
    @nanayaw71592 жыл бұрын

    Great job 👍.

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

    mosh there is a very important part you left out , will you mind taking us through deploying the containers ? so that i can access the endpoints of the app globally ?

  • @justchecking2470
    @justchecking24708 ай бұрын

    You are a gift man. I really appreciate for your valuable content but I could not find the zip file that you're attached

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

    You are always awesome. Everybody loves you :)

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

    Where is the Zip file? As stated in this video at 5:47...

  • @patrikwihlke4170
    @patrikwihlke41702 жыл бұрын

    14:09 I think that could be to allow subversions like 3.8.2 etc which would not translate well as numbers.

  • @kg4lod

    @kg4lod

    Жыл бұрын

    Also, version is deprecated and ignored by docker. It's literally just a comment at this point. From Docker spec (emphasis in original): "A Compose implementation SHOULD NOT use this version to select an exact schema to validate the Compose file, but prefer the most recent schema at the time it has been designed."

  • @kazemgolabpars139
    @kazemgolabpars1395 ай бұрын

    The reason version has to be in quotes for docker-compose is that yaml spec parses numbers such as 3.0 to 3 and it breaks versioning.

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

    Great course and next that I hope you make course about Docker + Kubernetes. :)

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

    nicely explained

  • @zacharypump5910
    @zacharypump591011 ай бұрын

    This was super helpful. Do you have guidance on how I would run Dr. compose for a permanent service on an Ubuntu server host? (Automatically start on host boot up.etc)

  • @sathvikmalgikar2842
    @sathvikmalgikar28423 ай бұрын

    You are awesome 🔥🔥

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

    Love it, I’m being stuck for 2 weeks

  • @andrewstribling4385
    @andrewstribling43853 ай бұрын

    How can one determine what the needs of the project are for a docker compose file? How do you know what the requirements are?

  • @daleclements3884
    @daleclements3884Ай бұрын

    Hey Mosh, love your videos. When you demo the app you mention that the DB is pre-populated from a migration script automatically, but I never see how. What is causing that?

  • @trivikramanand871
    @trivikramanand8712 жыл бұрын

    woww!! Thank you so much Mosh for such great content, I'm a 1st yr CSE college student in India and request you to please make a OOPs in c++/ python !!, I saw ur 7min video on OOPs and I really understood it very well

  • @osunwoyeadedapo4634

    @osunwoyeadedapo4634

    2 жыл бұрын

    Please can you code for crypto arbitrage for different exchanges?

  • @NOTNULLBG

    @NOTNULLBG

    Жыл бұрын

    How is the experience at a programming college? I also want to go the path of coding (I'm indian).

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

    Are you sharing the code for this tutorial anywhere?

  • @chrisojwang
    @chrisojwang5 ай бұрын

    Amazing tutorial