0:36- Review Diagram - Workflow 1:49 - What is a Dockerfile? 2:22 - How the Dockerfile commands map to the image environment 8:05 - Create the Dockerfile (Demo) 12:00 - Build an image out of the Dockerfile (Demo - simulating Jenkins) 15:02 - Start the Application to verify: 1) App starts successfully 2) App environment is configured correctly 19:34 - do improvement - copy only relevant files 👉🏼 For any questions/issues/feedback, please leave me a comment and I will get back to you as soon as possible. 👉🏼 Also please let me know what you want to learn about Docker & Kubernetes. Also please don't forget to subscribe and give me a thumbs up if you liked my video 🤗
Thanks for the video, but I think there are two things missing: 1- Exposing the ports in the Dockerfile and attaching them from the run command. 2- Using a Dockerignore file instead of manually moving the files to another directory.
Good morning, I'm here to really commend and appreciate your good works. I do really enjoyed your series of videos on docker and Kubernetes. They are very inspiring, full of contents and simplified. Thanks
😄 Happy to hear that! I have several paid courses, check out www.techworld-with-nana.com/ Or right below the video it says "THANKS", where you can support me. Thank you so much in advance! :)
Omg, I've learnt so much from your video! You explained everything in details and very clearly. This helped me create my first Dockerfile, and it works perfectly
Hello Anna, concepts are very clear and understandable the way you have explained it with the example which makes us to understand very well. really appreciate your effort and hope to watch your more videos. thank you. and I wish all the best.
Informative and useful video. Two things 1. For windows ENV settings, do we use / or // or \ or \\ for PATHs 2. For java classpath, is it ["java","-cp"] or ["java","-classpath"] or ENV CLASSPATH? I would really appreciate it if you could go indepth into Dockerfiles for Java-Maven and Java-SpringBoot-Maven projects. Thanks again for your educational videos
Nana, am loving the way you are making us go through the concepts so clearly in a short amount of time , I had looked other videos but never felt docker this easy
@TechWorld with Nana : Thanks for this , its really helpful. Most of the concepts are cleared with you Docker in Practice Course. Really Appreciated :)
That is really cool explanation, especially of the container having its own file system and how to connect into a container. What was missing, was actually a demonstration of using your the app. I presume the host browser could see and connect to the running containerised application, but does this require the Web port mapping are also stated in the Docker file?
I must say that, this is by far the best video/tutorial on Docker in RUclips. I always had doubt about Dockerfile & Docker-Compose files but, thanks to your excellent videos and explanations. It cleared all my doubts. I'm really grateful to you. Wish I found your channel a lot earlier. Thanks a lot, Nana! :) #Subscribed
Dear Nana, thanks for creating very simple and informative playlist, I am exceuting all the code mentioned in the playlist and i am able to follow everything you presneted in this. Now at this stage when we are running our app image as container, we are getting the message app is listening at port 3000. But when i open this on brower it is not showing anythinb. Why this is happening? In order to run this from our image what steps I need to follow.
Basically the RUN command is like running a command during building the image, and when the image build is done, the command to be executed is written as CMD.
When I want to learn about Docker I just type Docker Nana if i didnt save the video. U re simply great in explaining Docker, also DevOps 😊. My question is about Dockerfile. I am trying to create an avalonia app inside a Docker Image. The app should run using the weston compositor in Ubuntu environment. I have already Avalonia running using X11 but I would like to use the weston compositor Any help ? Thank you for your great Videos
docker run my-app:1.0 internal/modules/cjs/loader.js:965 throw err; ^ Error: Cannot find module '/home/app/server.js' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:962:15) at Function.Module._load (internal/modules/cjs/loader.js:838:27) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) at internal/main/run_main_module.js:17:47 { code: 'MODULE_NOT_FOUND', requireStack: [] } Hai Nana, After run the image build by docker file. I got this error. How to resolve this?
I have a question. In this docker file all we are doing is running node server.js, but what about the dependencies on mongo and mongo-express containers? Shouldn’t we include them as well as part of the Dockerfile?
Hi Nana @TechWorld with Nana, Thanks for this amazing video of making a docker image. I am having one question. How we can run our image that depends on some other images as whole application like in this video, we have used MONGODB and MONGO-EPRESS UI images for storing the data in DB. In last 2 minutes you said we can run the docker image from docker compose. May i know we can do that..?? ...Thanks
Best teacher :) , I ve two qst: 1 . I become an error by building the image because of the encoding , the Dockerfile is in UTF16 encodoing how I could fix this to be in UTF8 2. Can I run/deploy windows based images in Linux host
Hi Nina thanks for video but there is some more content I expected like downloading the artifact from repo whith login into that prvt artifact by encrypting the login details and building the image with that artifact
what about dockerfile workdir command.After you copy from host to container woud not be fine to set workdir to /home/app so that each further command as run will be executing in the WORKDIR container directory?Thank you
Hi Nana, thank you for your tutorials! I hava question! Where are the environment variables used for? In the server.js these values are hardcoded right?
Does running app with docker file will it run only app or both app and mongodb. Because in my case it is running app only and when I open browser the content of site at 3000 port is blank. And I am guessing it because of my mongodb is not running what say! Kindly please answer my query
Hello Nana, i have a question let's suppose that i'm having a microservice app in which i'm using jenkins for continous integration for each microservice(each microservice has its own git repo in which i have specified the jenkinsfile, the src code and the dockerfile in order to build images for the genearted artifacts and pull them in dockerhub )How each image will talk to each other (i'm not going to build docker network manually i guess every thing should be done automatised )
Hi, How can I see a docker-file when the publisher hasn't put it on Docker Hub and there is no Git page? Also, you can use docker run --restart unless-stopped to ensure the container will restart after a reboot. Is it possible to do the same using docker compose? Thanks, Eduardo
Hi, thank you for the detail explanations, these tutorial are very good and to the point. I wanted to ask you if you something on secrets using docker-compose and also any BuildKit tutorials for docker? Thank you!
Thanks Jorge, regarding your question "secrets using docker-compose and also any BuildKit tutorials for docker" sure you can ask, what do you mean exactly, do you have any example?
@@TechWorldwithNana thank you, I think I figured it out, but your videos are very helpful and well explained. I am watching your kubernetes ones now. I appreciate your time and effort putting these together.
I your javascript application is not working. It showing blank screen. I debugging the dependency version did my best still application not working having bugs. It returns blank screen in response+ in logs it shows error at get(profile-pic/) route but not seen any error. Help me
Thank you So much Nana, The concept was explained so nicely. I Just have one query, Can we implement docker volume in docker file if yes, then how? (I tried to search for related video content but could not find any) You did explain in this video how we can copy the content of a local directory in to the container while creating one which is good.
When i run this docker build command , it showed me this error failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount595932089/Dockerfile: no such file or directory Thank you Nana!
Thanks for the clear explanations..!! After deploying my-app as container, the browser just shows empty page, tried to debug but no luck. Any idea, why?? However when my-app is run on host machine, I was able to see output in the browser and connects to mongodb container without any issues.
I didn't follow this tutorial, but I think that she forgot to expose the port 3000 that is used by the Node server. I think that she had to write an EXPOSE command in the Dockerfile and add -d 3000:3000 to the docker run command.
@@queenofpain6483 the solution that worked for me was to change the line let mongoUrlLocal = "mongodb://admin:password@localhost:27017"; to let mongoUrlLocal = "mongodb://admin:password@mongodb:27017"; I will post at top. Several people are saying they are having the same problem. My environment is WSL2 on Windows so my fix may be specific to that environment or may be more widely applicable.
weird, I cannot connect to the database. I start it up, and I see it is unable to connect to database. My URL is "mongodb://mongoadmin:password123@localhost:27017"; I can connect to it via mongo-express, it worked before I put the node.js code into a image. node server works, I can see it connected to a database, "node". I stop it, then start the container, and "/home/nodeapp/server.js" fails with the unable to connect to database. If I changed the URL fro localhost to mongodb (the name of my container) and joined the container to the mongo network, then it starts up
when you start the node app as a docker container, it must connect to MongoDB (another docker container) using the name (mongo), not the host:port. That's why before you build the image from node app, you must adjust the db url to mongodb://mongoadmin:password123@mongo. Of course the db url in practice will be set from outside, so you don't have to adjust it back and forth all the time. But this is how it works, just to understand the concept. Let me know if you have any further questions.
Probably the dockerfile tutorial with the highest "information density" I know. Thank you for the sharp and precise explanations !
0:36- Review Diagram - Workflow
1:49 - What is a Dockerfile?
2:22 - How the Dockerfile commands map to the image environment
8:05 - Create the Dockerfile (Demo)
12:00 - Build an image out of the Dockerfile (Demo - simulating Jenkins)
15:02 - Start the Application to verify: 1) App starts successfully 2) App environment is configured correctly
19:34 - do improvement - copy only relevant files
👉🏼 For any questions/issues/feedback, please leave me a comment and I will get back to you as soon as possible.
👉🏼 Also please let me know what you want to learn about Docker & Kubernetes.
Also please don't forget to subscribe and give me a thumbs up if you liked my video 🤗
Very useful video....❤from india
where do i get server.js file i can see it on my local machine thanks
I actually took all my stuff and come resided here on your channel ,this becomes my new home , thank you very much , much love
Awesome :D Glad to hear you like my channel :)
Good Teacher in World, is you are.
Docker official tutorials are very bad... But you explain them like it is the easiest thing in the world! Thanks Nana
For me the best beginners-tutorial for Docker I could find on youtube. Many thanks and greetings from Switzerland.
That's very kind of you Raffael. I appreciate the support. Stay safe Switzerland. 🙂
Your voice makes me crazy you have the most rare voice I have ever heard
Excellent video for this topic
Your way of explaining it makes me fully understand each of the concepts, thanks!
That's nice to hear, thank you!
Thanks for the video, but I think there are two things missing:
1- Exposing the ports in the Dockerfile and attaching them from the run command.
2- Using a Dockerignore file instead of manually moving the files to another directory.
I watch your video and clear my doubt since I was not able to clear last three days ♥️♥️♥️♥️
Good morning, I'm here to really commend and appreciate your good works. I do really enjoyed your series of videos on docker and Kubernetes. They are very inspiring, full of contents and simplified. Thanks
Excellent teaching. Thanks to Nana
This video is so good I felt an urge to throw cash at the screen! How can we support the channel? Patreon? Merch? Paid courses?
😄 Happy to hear that! I have several paid courses, check out www.techworld-with-nana.com/
Or right below the video it says "THANKS", where you can support me. Thank you so much in advance! :)
I can throw in my btc wallet address for her 😂
Omg, I've learnt so much from your video! You explained everything in details and very clearly. This helped me create my first Dockerfile, and it works perfectly
Hello Anna, concepts are very clear and understandable the way you have explained it with the example which makes us to understand very well. really appreciate your effort and hope to watch your more videos. thank you. and I wish all the best.
You are very much welcome Madhu. I hope this tutorial series has greatly helped you in one way or another. 🙂
Thanks a lot Nana, for simple and clear explanations.
You 're really really good at explaining Docker clearly - will recommend to my data science students
Informative and useful video. Two things 1. For windows ENV settings, do we use / or // or \ or \\ for PATHs 2. For java classpath, is it ["java","-cp"] or ["java","-classpath"] or ENV CLASSPATH? I would really appreciate it if you could go indepth into Dockerfiles for Java-Maven and Java-SpringBoot-Maven projects. Thanks again for your educational videos
Nana, am loving the way you are making us go through the concepts so clearly in a short amount of time , I had looked other videos but never felt docker this easy
First of all thanks again for this video, very clearly explained with detail in simple terms, it is helping me in very much in my work!
You're welcome! Happy to hear that they help you in your work :)
Thanks Nana. This video eradicates some of my confusions.
Nicely done video. Its clear and to the point. Thank you for your efforts and sharing your knowledge with the rest of us.
All Videos r outstanding and I don't know how to say thanks to u. 🤗🤗✌
Thanks a lot! Support me by subscribing, liking and sharing with others, who would be interested in such videos 🙂
Great explanations! Really enjoying this video series and actually getting my head around Docker - thanks Nana!
Thanks Tony, glad you like my explanations :)
just starting out with docker. this was so helpful. thank you very much!!
@TechWorld with Nana : Thanks for this , its really helpful. Most of the concepts are cleared with you Docker in Practice Course. Really Appreciated :)
You're welcome Nikhil. I'm grateful for the opportunity to help. 🙂
Thank you so much for making this video. I love you Nana. ❤😂
That is really cool explanation, especially of the container having its own file system and how to connect into a container.
What was missing, was actually a demonstration of using your the app. I presume the host browser could see and connect to the running containerised application, but does this require the Web port mapping are also stated in the Docker file?
Great tutorial, Nana!
Thanks Nana. It is very useful to understand.
Thanks!
ammmmaaaaaaaazing! great quality content! thank you so much!
I must say that, this is by far the best video/tutorial on Docker in RUclips. I always had doubt about Dockerfile & Docker-Compose files but, thanks to your excellent videos and explanations. It cleared all my doubts. I'm really grateful to you. Wish I found your channel a lot earlier. Thanks a lot, Nana! :) #Subscribed
You're the best!!!!
Thank you so much for this.
You are a great instructor
Thanks for your video and explained well
Wooww mam 🙏🙏 awesome explaination..👌👌crisp n clear.. thanks a ton.
Thank you for making these videos
You're welcome Tubejim. Please share with your friends and spread the knowledge. 🙂
Great video, great instructions.
Thank you so much!
Dear Nana, thanks for creating very simple and informative playlist, I am exceuting all the code mentioned in the playlist and i am able to follow everything you presneted in this. Now at this stage when we are running our app image as container, we are getting the message app is listening at port 3000. But when i open this on brower it is not showing anythinb. Why this is happening? In order to run this from our image what steps I need to follow.
Best informative video ever!
You are amazing. I love your series and channel. Keep up your good work thanks!
Clear Explanation.
great job thanks
Great Explanation.. Thanks a lot for bringing such a valuable content.. 🤗
This is such a joy Ankit. Thank you. 🙂
Thanks a lot for this video !!!
Thank you Nana! It's absolutely a great tutorial.
Good one, thanks for sharing this video
Basically the RUN command is like running a command during building the image, and when the image build is done, the command to be executed is written as CMD.
Best explanation ever!!
Thank you 😊
Very well explained
When I want to learn about Docker I just type Docker Nana if i didnt save the video. U re simply great in explaining Docker, also DevOps 😊.
My question is about Dockerfile. I am trying to create an avalonia app inside a Docker Image. The app should run using the weston compositor in Ubuntu environment. I have already Avalonia running using X11 but I would like to use the weston compositor
Any help ?
Thank you for your great Videos
Nana, thanks for sharing.
What an excellent tutorial!!
Great explanation. Thank you 😊
Thanks, much appreciated.
Thanks for this amazing video mam!
That was a great explanation. Subscribed.
docker run my-app:1.0
internal/modules/cjs/loader.js:965
throw err;
^
Error: Cannot find module '/home/app/server.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:962:15)
at Function.Module._load (internal/modules/cjs/loader.js:838:27)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
Hai Nana,
After run the image build by docker file. I got this error. How to resolve this?
Your videos are just amazing
I have a question. In this docker file all we are doing is running node server.js, but what about the dependencies on mongo and mongo-express containers? Shouldn’t we include them as well as part of the Dockerfile?
you are the best...
Thanks for this!
Great video
U are awesome, god bless u NANA
Thank you Heena. Please don't forget to share with your friends. 🙂
It will be helpfull if it explained by using build command and by using jenkins to build container
you are so good!
Thank you it's very helpful
awesome videos maam...
Thanks for this , its really helpful
you are the best ! thank you so much
Thanks a lot Yassin! :)
Hi Nana @TechWorld with Nana, Thanks for this amazing video of making a docker image. I am having one question. How we can run our image that depends on some other images as whole application like in this video, we have used MONGODB and MONGO-EPRESS UI images for storing the data in DB. In last 2 minutes you said we can run the docker image from docker compose. May i know we can do that..?? ...Thanks
great video, thx
Best teacher :) , I ve two qst:
1 . I become an error by building the image because of the encoding , the Dockerfile is in UTF16 encodoing how I could fix this to be in UTF8
2. Can I run/deploy windows based images in Linux host
Thank you
Thanks!
thank you :)
If I don't set an SO in my Dockerfile, will docker take the SO from the host system?
Hi Nana, what is the use of STOPSIGNAL in Dockerfile. Can you please explain with a example.
Hi Nina thanks for video but there is some more content I expected like downloading the artifact from repo whith login into that prvt artifact by encrypting the login details and building the image with that artifact
what about dockerfile workdir command.After you copy from host to container woud not be fine to set workdir to /home/app so that each further command as run will be executing in the WORKDIR container directory?Thank you
Hi Nana, thank you for your tutorials! I hava question! Where are the environment variables used for? In the server.js these values are hardcoded right?
Thanks
As part of this Dockerfile why are we not doing RUN npm install?
It seems like the container isn't created until the deploy step. Would we ever want to create a container earlier, during development?
please why we ignore the mongodb image when creating the docker file as its necessary for our application
Probably should cover ENTRYPOINT and LABELS also
Does running app with docker file will it run only app or both app and mongodb. Because in my case it is running app only and when I open browser the content of site at 3000 port is blank. And I am guessing it because of my mongodb is not running what say!
Kindly please answer my query
Hello Nana, i have a question
let's suppose that i'm having a microservice app in which i'm using jenkins for continous integration for each microservice(each microservice has its own git repo in which i have specified the jenkinsfile, the src code and the dockerfile in order to build images for the genearted artifacts and pull them in dockerhub )How each image will talk to each other (i'm not going to build docker network manually i guess every thing should be done automatised )
Hi,
How can I see a docker-file when the publisher hasn't put it on Docker Hub and there is no Git page? Also, you can use docker run --restart unless-stopped to ensure the container will restart after a reboot. Is it possible to do the same using docker compose?
Thanks,
Eduardo
Before building the image , I would v loved to take a look at your code if it had a .env file.
Hi, I need to copy files that are generated in one container to another. How can I do that?
Hi, thank you for the detail explanations, these tutorial are very good and to the point. I wanted to ask you if you something on secrets using docker-compose and also any BuildKit tutorials for docker? Thank you!
Thanks Jorge, regarding your question "secrets using docker-compose and also any BuildKit tutorials for docker" sure you can ask, what do you mean exactly, do you have any example?
@@TechWorldwithNana thank you, I think I figured it out, but your videos are very helpful and well explained. I am watching your kubernetes ones now. I appreciate your time and effort putting these together.
Perfect
I your javascript application is not working. It showing blank screen. I debugging the dependency version did my best still application not working having bugs. It returns blank screen in response+ in logs it shows error at get(profile-pic/) route but not seen any error. Help me
Thank you So much Nana, The concept was explained so nicely.
I Just have one query, Can we implement docker volume in docker file if yes, then how? (I tried to search for related video content but could not find any)
You did explain in this video how we can copy the content of a local directory in to the container while creating one which is good.
Hello you use docker bind concept
When i run this docker build command , it showed me this error failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount595932089/Dockerfile: no such file or directory
Thank you Nana!
Thanks for the clear explanations..!! After deploying my-app as container, the browser just shows empty page, tried to debug but no luck. Any idea, why??
However when my-app is run on host machine, I was able to see output in the browser and connects to mongodb container without any issues.
same i just encountered the same issue. Were you able to solve it?
I didn't follow this tutorial, but I think that she forgot to expose the port 3000 that is used by the Node server. I think that she had to write an EXPOSE command in the Dockerfile and add -d 3000:3000 to the docker run command.
@@queenofpain6483 the solution that worked for me was to change the line
let mongoUrlLocal = "mongodb://admin:password@localhost:27017";
to
let mongoUrlLocal = "mongodb://admin:password@mongodb:27017";
I will post at top. Several people are saying they are having the same problem. My environment is WSL2 on Windows so my fix may be specific to that environment or may be more widely applicable.
weird, I cannot connect to the database. I start it up, and I see it is unable to connect to database. My URL is "mongodb://mongoadmin:password123@localhost:27017"; I can connect to it via mongo-express, it worked before I put the node.js code into a image. node server works, I can see it connected to a database, "node". I stop it, then start the container, and "/home/nodeapp/server.js" fails with the unable to connect to database. If I changed the URL fro localhost to mongodb (the name of my container) and joined the container to the mongo network, then it starts up
when you start the node app as a docker container, it must connect to MongoDB (another docker container) using the name (mongo), not the host:port. That's why before you build the image from node app, you must adjust the db url to mongodb://mongoadmin:password123@mongo. Of course the db url in practice will be set from outside, so you don't have to adjust it back and forth all the time. But this is how it works, just to understand the concept. Let me know if you have any further questions.
In description Github links are missing.
Hi! is it possible to change code without rebuilding image ? If we can, then pls tell how?