How to create a great dev environment with Docker

Поділитися
Вставка
  • Опубліковано 20 вер 2024

КОМЕНТАРІ • 193

  • @heyydev_1
    @heyydev_1 5 місяців тому +11

    I was just about to comment how great this video is and I saw I commented the same a year ago 😂 Thanks again.
    Now I'm a senior developer and these things keep been high value.

  • @yaksvk
    @yaksvk Рік тому +29

    Thank you Patrick! This was one of the clearest, straight-forward and concise introductions to Docker for people who actually do development and not just devops/admin stuff. Very helpful!

  • @Javoke
    @Javoke Рік тому +7

    I wanna thank you for aaaaalll the videos you share with us. Me, as a non-english-native person, I appreciate the rythm and accent in your voice, so we can understand exactly what you are saying. Also,, the explanation is very clear !! Thank you so much!!!

  • @strawberriesandcum
    @strawberriesandcum Рік тому +5

    This was so simple, I didn't even realise that the video was 30 min :), thank you for this

  • @Marchelo005
    @Marchelo005 19 днів тому

    A short and concise explanation of each point and very good examples. Thank you Patrick!

  • @heyydev_1
    @heyydev_1 Рік тому +12

    Amazing explanation. Even though my native language is not English, this is the best tutorial I've found and the one that I understood the best. Thanks!

  • @scriptkiddie100
    @scriptkiddie100 Рік тому +8

    Thank you for this. Very comprehensible and through, ideal for a beginner tutorial.

  • @brendan8915
    @brendan8915 Рік тому +5

    This is the video that has finally got me over the line for using Docker. I needed to upskill this for work, my sincerest gratitudes to you. Thank you so much.

  • @kingdsl
    @kingdsl 3 місяці тому +1

    For those who are asking about the VS Code theme, I believe it's 'Shades of Purple' by Ahmad Awais ⚡

  • @brennenherbruck8740
    @brennenherbruck8740 Рік тому +35

    Devcontainers have prebuilt configurations that are *much* simpler and gives your container superpowers with devcontainer feautres (like docker-in-docker)

    • @Lexaire
      @Lexaire Рік тому +6

      Yes, using non-dev images like he showed is an awful dev experience. Much better to use the premade ones for development, and then custom dockerfiles just for final testing and deployment.

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

      Can you give examples of good premade dev environment? anything for javascript?

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

      @@Lexaire Can you give good examples of premade dev environment? one for javascript? thanks

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

      agreed + you can actually debug in container (use break points )

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

      ​@@Lexaireneed more!

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

    best on-point video I have seen in the last few months on YT.

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

    आपके वीडियो सुपर कूल और अद्भुत हैं। मुझे यह बहुत पसंद आया. धन्यवाद

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

    Awesome content and clear presentation; special thanks for the debugger setup!

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

    So far my favourite introduction to Docker. Thank you!

  • @danielk.2172
    @danielk.2172 Рік тому +15

    Good tutorial!
    If anyone on Windows using Git bash having problems to see the reload of the local code, try mounting the volume with: -v /${PWD}:/code
    Apparently there is a POSIX path conversion that doesn`t convert correctly and ends up adding a ";C" at the end of the local path

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

      you sir are a good man

    • @guilhermemendes264
      @guilhermemendes264 11 місяців тому

      Thanks bro I owe you a beer

    • @budmonk2819
      @budmonk2819 11 місяців тому

      Thank you brother - I almost gave up before I decided to search through the comments.

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

      Or just stop using windows

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

    Brilliant tutorial, concise yet very complete.

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

    Thank you! Excellent video. Easy to follow.

  • @sixpooltube
    @sixpooltube 11 місяців тому +1

    Amazing tutorial. Fast and easy to understand.

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

    This is all I need and you gave it perfectly ! Thank you very much !

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

    Thank You so much Patrick for this vodeo, this was the much needed video for me right now

  • @JiriPocta
    @JiriPocta 7 місяців тому

    Thank you very much, simple and easy to understand.

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

    Superb. Thank you. This was very clean and straight to the point. Subbed.

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

    Good Job! Amazing tutorial, Patrick. Thanks a lot!

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

    Wow i wanted to learn Docker!
    Thx again Patrick!

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

    Thanks for the video. Just started the course on Docker so this one was extremely relevant

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

      use podman instead, it is the future

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

      Podman needs to fix few things, feature-wise, performance wise and bug-wise

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

    Dear Patrick, thanks a lot for the great tutorial !!!

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

    Great Demo I even managed to to do it on my windows machine.

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

    Great video and impressive understanding of the subject matter.

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

    Very interesting video. Although it lacks some clarifications on the docker commands, this gap could be filled by ChatGPT helping me out understand what they were exactly. Thanks for the video

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

    Thanks a lot for the great, short and to the point video with excellent explanations!

  • @elmarhinz3076
    @elmarhinz3076 Рік тому +6

    In the moment of mounting the outside Volume, there should be similar code inside the container. (We know this, as we were able to run it without mounting the outside code.). I miss some words, how this conflict is solved.
    * What happens to the code inside the container when editing the mounted code?
    * Why do we copy the code at all, if we plan to mount it?
    * Wouldn't it make sense to throw an error message from inside, similar: "Error 501: The source volume was not mounted"? Otherwise duplicated code may lead to many mistakes by editing the wrong place.
    * Is there any standard or practice, how to handle this?

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

      > What happens to the code inside the container when editing the mounted code?
      it is substituted with anything new in project directory.
      > Why do we copy the code at all, if we plan to mount it?
      to be able to share it. You can commit all editing done to update the image.

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

    great video, thanks! a lot of value for 30 minutes !!

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

    Great explanation! thank you for your work

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

    Thank you so much for sharing this with us ❤️‍🔥

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

    Thank you for this great tutorial.♥

  • @mohssineserraji1098
    @mohssineserraji1098 10 місяців тому +1

    Thank you for the amazing tuto

  • @vengtCent
    @vengtCent Рік тому +9

    Hi Patrick, thanks for this great tutorial. Do you have any resources for setting up this environment with pycharm?

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

    Buenisimo!

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

    thanks patrick , you are a genius!

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

    Very detailed! Cool stuff!

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

    hello , as I know that docker volumes map the local machine folder Linux or MacOs is different to window 10/11. in windows 10/11 cannot be directly mapped to a local directory

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

    2:13 A container is actually _less_ than a whole VM. It’s a complete prepackaged userland, that runs under the same Linux kernel that is already installed on your machine. It is not actually an OS on its own.

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

    is this different for Flask? Also could you show how to deploy a CNN model and make it work? how do you post an image to trigs the app? do you include the CNN model (sometimes it is heavy) into the image? what if it is big size? Bests

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

    1st: pwd & cwd are different
    2nd: doesn't install redis in the current container but starts a different container

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

    thanks Patrick,
    am I the only one who's not getting anything when i run the command "docker run --name docher-container -p......". I've changed the port though to 8000:8000 due to an error on 80 but the localhost isn't accesible, any idea where i could be wrong please

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

    Brilliant! Thank you for this video

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 Рік тому +5

    7:17 Having a list of strings is a good idea. This avoids having to pass a shell command, with all the possibilities for (mis)interpretation of special characters. Instead, you pass the command-line words directly to the program, as is.

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

    Thank you ^^

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

    For those of you stuck at 12:18 take note that the brackets are curly brackets

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

    Excellent tutorial!

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

    Docker: make a solution that creates more problems

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

    Great one!❤‍🔥❤‍🔥❤‍🔥

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

    there is no git install in the container, how can I push to repo like that ?

    • @James-gr2ds
      @James-gr2ds Рік тому

      I was wondering the same thing. When running in this setup what is the standard way to then use git? I assume it is to just install git inside the container and then go from there. You could install git with the Dockerfile (and maybe do some of the configuration) but it seems you would have to run through some of the git setup (such as auth with remote) everytime you rebuild the image?
      I would be very interested to hear what people do here?

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

      @@James-gr2ds ohh I did solved it by installing git when container is being created at first. It will work fine.

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

    Awesome tutorial

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

    Nicely done 🎉

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

    Very helpful sir!

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

    Super, thanks a lot!

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

    exactly what i needed

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

    Something I don't understand. Why do we need to copy the code to the container if we are later mounting pwd to the container? The code which is in the image is not used anyway right?
    Also how does it work without EXPOSE 80 in the Dockerfile? Is it optional?

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

    Great tutorial and cool way to leverage containers! Have you found any methods for doing this using open-source or even source available tooling? :-/ Microsoft appears to have restricted the Docker and dev-environment extensions to their proprietary closed-source release of vscode (Microsoft visual studio code)... Great to see Microsoft back to their old tricks 😩

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

    Hey Patrick,
    Thanks for the video.
    Do you know if developing inside docker Container is working With the community Edition of pycharm?

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

    19:24 It is a pity you use exactly that filename in the tutorial that was non-compliant with the recommendations in YAML FAQ, in the first place and that has been replaced years ago.The recommended extension for YAML files has been `.yaml` since 2006. Docker-compose started with docker-compose.yml, but switched to using docker-compose.yaml several years ago, and now uses `compose.yaml` in the documentation (still falling back to the other formats, for those that have not read the manual recently)

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

    Hi, Thanks for this tutorial, it's great!
    I would like to do the same in pycharm - but it appears that docker-based envs are a premium-only feature. Is that correct or it's possible to do the same also with the community edition of Pycharm?

  • @harshrenose8852
    @harshrenose8852 24 дні тому

    If we specify which dockerfile to use in docker-compose why do we need to write command: again

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

    Nice exploration! But could you do the same using just a docker-compose? Why do you prefer the way using Dockerfile? What benefits does it have?

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

      Not sure what you mean, but you need multiple separate dockerImages, each for a different process, and then docker compose to organise all the different dockerImages you have, and run them all at the same time

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

    Question: when you directly connected the IDE inside the cotainer, do you still need the mapping, since you are already in the IDE inside the container?

    • @patloeber
      @patloeber  Рік тому +4

      you probably still also want it on your machine and need a mechanism to persist the changes. But if, let's say you push your code from the container to Github, then you don't need the mapping

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

      I see and thanks for the informative video!

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

    Great content dude 😎

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

    Each time the container is rebuilt the editors extension have to be installed again. Here the workflow feels a little broken. Any best practice how to address with this? How to do it within a multi developer project?

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

      Yeah, such a bummer. You need to add some lines in Dockerfile for installing z-shell and vs code extensions.

  • @JOY-df2oz
    @JOY-df2oz 9 місяців тому

    A.M.A.Z.I.N.G.

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

    If I need write windows OS app, I'm not shure that will helpful.

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

    Thank you! :)

  • @ZIKAZIKA-nu4ih
    @ZIKAZIKA-nu4ih Рік тому +1

    12:57 My changes to code are not reflected unless I restart the container. Can you please suggest why is this ?

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

    When using this approach you end up with 2 VScode projects open at the same time.
    And for some reason I can connect to debugger only from host VScode and not from container.

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

    @Patric - it will be a great learning video about the same subject but geared towards C# developers with either SQL Server as a backend or MySQL etc.

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

      I'm not a C# dev, but you could probably modify the Dockerfile to pull the image for the current .NET version and then RUN any commands to set up the environment. Then you could modify the docker-compose file and replace the redis service with a SQL Server or MySQL one. Forward the appropriate ports, make sure that your volumes are correct, and you should be good to go. I'm sure there are plenty of resources out there to get you going. Good luck!

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

    brilliant tutorial! thank you
    I have a question.. I’m confused with how to debug worker command inside docer container, when it possible to run in bash console only?
    I’m going to be glad hearing your answer)

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

    Great video. Thank you for this fast foward track on "docker developing".
    But I have one stuoid beginner qestion: How do I get my changed code from inside the container? 🤔

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

      You can always copy the code from the container. But in the video he is explaining about container volumes, which will mirror both local and the container code, so whatever is changed in the code of the container it will be mapped to the local code

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

    Can you provide an update on using podman or containerd? My company has prevented us from using Docker due to corporate licensing costs. I am using virtualbox/vagrant now, but do not like the "integration" of vagrant into virtualbox

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

      @@mspajic My company has said "No" to docker due to licensing for company (not personal) use.

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

      @@mpsii I think you didnt understand me, docker engine is free even for companies, just docker desktop (gui app) isnt, these arent the same things, CLI versions policy hasnt been changed. Read the docker subscription model on their official site. I even checked with my company, as we had the same situation, and I got green light after this explanation.

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

      Ah I get it, sry I misunderstood you. Company isnt using docker anymore as a tool in general and you dont get anything by installing it on pc. Sry again, was just tryin to help :)

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

    That is cool to have all your dev workflow as Dockerfile and to build it whenever/wherever you want. But it's such pain in the ass not to forget installing zsh shell, all vs code extensions, etc. Tried to set it all for my ml project, but failed.

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

    For some reason even with the -v flag it didn't update the container, and it doesn't update even if I delete an recreate the container. Also, when I open VSCode in the running container, there's no folder opened, nor any actual python file. Any idea why?

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

    When you build the release container for distribution, will it strip out the vs code stuff? Or do you have to do this manually or isnt that necessary?

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

      You need just rebuild image with code updated. That's it.

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

    Could we also setup the debugger with the suggested "fastapi" option of VSCode?

  • @mirwek
    @mirwek 9 місяців тому

    Interesting, you are using Fastapi. How can you debug with debugpy Flask application in docker since you need to give security PIN?

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

    Attaching to running container opens Vs Code on an empty folder. How to I fix this?

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

      Click File > Open Folder... and select the folder

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

    Great beginner tutorial. Thanks for this.

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

    Great tutorial. Is anything additional required when docker compose yaml references multiple containers forming a network? Can I just connect to my UI container and debug through all the other referenced containers as if they were just imports and I had justmycode set to false? Or do we need to edit other container docker files... Maybe adding port 5678 for example?

  • @AkaThePistachio
    @AkaThePistachio 6 місяців тому

    Im having issues attaching to my running container, once connected im put inside an empty dir with no access to my code any advice?

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

    I really like this way of developing, but I encoutered the problem that my code was trying to render something, that I couldn't see. Does anyone have a good solution for this kind of problem when the host system is windows 10?

  • @vitaly1085
    @vitaly1085 Рік тому +8

    Hi Patrick, thanks a lot! I want same guide for PyCharm)

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

      100% needed

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

      Does pycharm even support this feature? It would be cool if they did, but I have no idea.

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

      @@NostraDavid2 yes, but unfortunately its very complex and the guide isn't clear

    • @ErikS-
      @ErikS- Рік тому +1

      would indeed be good to also for Pycharm.
      I am stuck with Pycharm because I always used it + I am also very much depending on its "on the spot autosave" functionality. In Visual code I dont have this feature undortunately (as far as i am aware)

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

    Sir, What python IDE and autocomplete extensions you have used in Intermediate Python Course ? Kindly share

    • @Mathias-cq3zo
      @Mathias-cq3zo Рік тому

      It is the one that's included with the python extension in VSC (the Python extension Patrick showed us)

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

    At 12:46 when we attach volume - did main.py copied inside container according to Dockerfile instruction?

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

    Hi Patrick! I've been following you for a few months, and thanks for everything you share.
    Just a quick question, what do you use in the terminal of vs code that show you the suggested code? like autocompletion? thanks again :)

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

      try zsh

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

      I love the powerlevel10k wizard, that asks you which features / settings you want. Much easier than trying to customize bash until it looks like Zsh with p10k.

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

    What about other langs like go or rust?? and it too much tied up with vscode? can we configure some other editors???

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

    Why at 9:00 in Dockerfile wi didn’t have to use EXPOSE instruction?

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

    I have been using docker compose for project setup for years now and have been happy with it. However, as soon as I switched to an M1 Macbook, startup speeds have been pretty bad.

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

      Is it because m1?
      What have gone wrong?

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

    Why I am having 'ModuleNotFoundError/ when trying to import function from a file I created?

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

    I am quite new to docker. In the example at 21:00, there is a duplicate in command (Dockerfile and docker-compose), should it be duplicated like that or not?

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

    12:34 Does the COPY command in the Dockerfile become superfluous when you define a volume?

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

      Only if you don’t want to actually use the docker image in any production environment.

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

    Good♥️♥️💛شكرا

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

    thanks🤩

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

    What's the extension used that suggests full command in the terminal? seems pretty handy

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

      I use zsh-autosuggestions, is this is what you are looking for

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

      Probably some "AI" bs