10:00 - 12:00 For those who can't connect with psql from the command line: In my case, I already had a Postgres server running on port 5432. It's because of pgAdmin 4. So always when I tried to connect to the "docker container", it connected to the incorrect server and not the docker one. I fixed it by changing the ports in the run command from 5432:5432 to 5433:5432. Also, change the psql command to "psql -h localhost -p 5433 -U postgres" and it should work. From now on I will avoid using the default port "5432". It took me 1-2 hours to understand the issue.
@@TheMakeupmonika all he said was to change the container port to 5433 to avoid dependency issues, that command after is to connect to that container on the port we specified (5433)
Watching spring boot tutorial -> "if you don't know what ist postgres, watch my tutorial" -> stopped watching spring, started watching postgres tutorial -> "if you want to know how to make this app, watch my spring boot tutorial" -> infinite loop
For anyone on WINDOWS that could not connect to your postgres container from your host machine like he did in the video. Go to Control Panel>Programs and Files>Uninstall postgres>Individual component>postgres server . After that try to connect to your postgres container once again. It should work.
I'm pretty new to your channel, discovered incidentally while researching tutorials re: spring and must say - LOVING IT!!! Got yourself another subscriber 👍
Thank you for this video! I managed to get container up and running, but didn't know you were supposed to expose the port to the "outside world". That fixed my issue.
Suggestion at 11:00. You're highlighting the container port and not the localhost port. If a user wants a different local port, they should change the the first number, not the second.
sure glad i saw this comment! my local version of postgres was already using port 5432 so i had to set the container port to a different port number (ex 5000:5432)
thank you for your comment I have the local postgres in same 5432 port and I have issues when I try to connect containerized postgres. Changed 5432:5432 to 5000:5432 and my issue is gone. Also I was trying connect directly with container name ( spring.datasource.url=jdbc:postgresql://mycontainername:5432/genel ) and that was keep giving sockettimeoutexception now right property is ( spring.datasource.url=jdbc:postgresql://localhost:5000/genel ) .Sorry for bad english I was stuck there 2 days. I appreciate.
Thank you for guide, it was really useful! PS. I'm on Windows10-Pro and all steps of this tutorial started works for me just after i completely uninstalled Postgres (and ms sql server just in case... (: ) from my PC.
when i run psql -h localhost -p 5432 -U postgres i get: psql: error: connection to server at "localhost" (::1), port 5432 failed: FATAL: role "postgres" does not exist
At 11:15 I get the error: psql -h localhost -p 5555 -U postgres psql: error: could not connect to server: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. Why could that be? I deliberately changed the port from 5432 to 5555 because I also have PSQL on my machine and it already uses that port.
@@amigoscode I would like to ask how can I connect PhpPgAdmin to postgresql. A reply would be much appreciated I'm trying since last Tuesday without anything success. Any link of an article would be appreciated too. Thanks in advance
Hey man! I have the following doubts : 1. If I'm using docker postgres image, then also i need to have postgres in my local machine? 2. I didn't understand when you connected local's postgres to docker's postgres. Like what is the point of that? 3. Please correct me if I am wrong but I have different postgres servers on different ports and my local postgres command can point to any of the server. If I am not explicitly telling the port then it uses postgres server by default which got installed while installing it on local (using homebrew, installer file) and if I explicitly mention the port number to connect with, it could be either the docker's postgres server or the local postgres server. Am I correct?
Great video! the port issue threw me through the window for about 20-30 mins, but the rest is awesome! A script, a few practice runs, and some postop editing could help you meet the 10 minutes if you really wanted to. ;) Thanks again!
Thanks for this, it did help on the Docker side. However it seems although Postgres installed on my machine, it did not instal psql😕 Anyone had this? However, although I couldn't run any cli commands on my machine, pgadmin could "see" my databases, but I could run commands from the container while bashed ...could be by design ...although I'm coming from a windows background using a mac so there's probable a "Run as Administrator" type setting I need to use. I'm also using .Net so still some researching to do.
Hey buddy it works but do you know why when I try to also run the spring application in a container, it refuses connection to the database? It works when I run on Eclipse but not as a docker container (the jar in it)
Unfortunately my spring boot app dont see my database outside, they see database with name postgres, but my db that i created not. I bootstrap my app like you, and i have acceses outside container but my db with name test_database not available
when connecting attempting to connect to the database from local, I got this error: psql: error: could not connect to server: could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432? (I am on a windows system) I made sure the port was exposed and that none of my firewalls are blocking port 5432. Do you what else could be causing this?
Awesome tutorial. I have a question here. Every time I restart the container, all my databases and tables are getting removed, and I am getting a fresh installed copy. Is there any extra parameter needs to provide to persist the state ?
Hi, I am just stuck with the step at the time 9:35, because I am doing in window 10 pro. could you explain for windows, where to do the process after this time.
Great Tutorial! I was kind of lost at some point because I was using Windows and KiteMatic(Electron) App. I got lost at "psql -h localhost -p 5432 -U postgres" because Kitematic predefined another IP address for that container.
@@amigoscode That was already solved, but thanks! my question was, is it okay to use KiteMap? I just followed the tutorial from pgAdmin and it exposes my password in environmental variables. I just want pgAdmin4 GUI in my local machine. it is somehow related to PostgreSQL but with a different platform to establish my own database schema. Thanks!
James Tomblin micro serves, container orchestration, cloud computing, application auto scaling, environmental separation etc. there are multiple. It depends on what business it is.
@@amigoscode sorry, newbie here haha. To store a bunch of images (image, title and description) in a database, I read something about blob but I am not sure where to start.
First of all thank you 🙌 👏 🤝 👍 for your tutorial which help me get a new approach to build backend service with Java. Your content is great and I am testimony of how it's accessible and straight forward to cope with it. I think you could do tutorial on frontend with Angular (essentials and advanced topics) and TypeScript (fundamentals and advanced topics) (type annotation, type inference, type assertion, arrow functions, interfaces, classes, objects, constructors, access modifiers, properties and modules). If it's possible that you could introduce kotlin too with Micronaut framework that would be 🔥 🔥 🔥
i tried: "docker run --name postgres -e POSTGRES_PASSWORD=pass -p 5432:5432 -d postgres" an it doesnt work, but i did the exact command in the video and its works. What is the difference?
on windows....if you have installed psql just now.... your local server will be started immediately...so switch it off using *** pg_ctl -D "C:\Program Files\PostgreSQL\9.6\data" stop *** then your psql picks up docker insatnce
A very good tutorial. I am still a bit confused though: what will happen if I load a big database dump to the postgres in the docker container (from bakcup .sql file for example), will docker adjust it's size automatically?
I tried deploy postgresql 11 on docker: Backed up my 4GB database into 2GB .sql file using pg_dump. Sent the .sql file into docker container using docker cp. After that, I created an empty db and restored the 2GB .sql file into the empty db using psql cli inside the docker, not the psql at the host. After that, the size of my container was just the same as the host. I do not know whether the size is shrinkable (whatever it is called), maybe I could have restored the db inside the container using host's psql without copying the backup first, unnecessary perhaps. edit: container size was before restore:
Thanks but the port info is incorrect. from the docker documentation; -p 8080:80 Map TCP port 80 in the container to port 8080 on the Docker host. the first port is the host port while the second port is the container one.
Had the same issue ~ spent 3 days trying to fix. Issue was i had local install of postgres and it hogs the port 5432. Had to find it and uninstall. used these command in terminal on local machine to find it : to find if port being used: netstat | grep 5432 to find application install location: ps auxw | grep post stackoverflow.com/questions/12028037/postgres-app-could-not-start-on-port-5432/28917372
I played the video at 2x speed to get to 10 minutes promised in the title :D
😂
You are dark sir. Time is relatively relative
@@classicguy7813 obviously not as relative as you believe
XDDDDDDD ohh myy gooooooodddd youuu aareeee my herooooo !!!! 😂😂😂😂😂😂
You have shown us how to make @Amigoscode an honest man. Respect.
10:00 - 12:00 For those who can't connect with psql from the command line: In my case, I already had a Postgres server running on port 5432. It's because of pgAdmin 4. So always when I tried to connect to the "docker container", it connected to the incorrect server and not the docker one. I fixed it by changing the ports in the run command from 5432:5432 to 5433:5432. Also, change the psql command to "psql -h localhost -p 5433 -U postgres" and it should work. From now on I will avoid using the default port "5432". It took me 1-2 hours to understand the issue.
thank you :)
Gracias!!
"psql -h localhost -p 5433 -U postgres" , can you please explain me why and what that is ? thanks in advance
thanks a lot man
@@TheMakeupmonika all he said was to change the container port to 5433 to avoid dependency issues, that command after is to connect to that container on the port we specified (5433)
The best thing I`ve seen on internet in month. Such a great explanation. Thank you
Watching spring boot tutorial -> "if you don't know what ist postgres, watch my tutorial" -> stopped watching spring, started watching postgres tutorial -> "if you want to know how to make this app, watch my spring boot tutorial" -> infinite loop
sorry for the confusion. I meant the course. amigoscode.com/courses/postgresql
I too fell into the similar loop. It is actually frustrating.
rofl...
lmao this is hilarious man
You have no idea how important this video was to me, thank you. I'll look over your course offerings.
This is perfect, great explanation! Docker makes it so much easier to tinker with databases without spending tons of time configuring a service.
Totally agree, containerization is the best !
Wow... Amigoscode you did it in just 8 minutes and 51 seconds, thanks!👍
This video has saved me days & probably hundreds of dollars for my client, thanks ^^
Best tutorials I've ever watched from anyone thus far thank you!
Man, it's just awesome how you connect docker+postgres+javaApp+browserView to show it's working, great!
For anyone on WINDOWS that could not connect to your postgres container from your host machine like he did in the video. Go to Control Panel>Programs and Files>Uninstall postgres>Individual component>postgres server . After that try to connect to your postgres container once again. It should work.
thanks, working now
great, that solved my issues:)
Thanks bro, you've saved me a lot of time. Have a nice year!)))
I'm pretty new to your channel, discovered incidentally while researching tutorials re: spring and must say - LOVING IT!!! Got yourself another subscriber 👍
Cheers buddy
Thank you for that great video! This is exactly, that I've searched!
Thank you for this video! I managed to get container up and running, but didn't know you were supposed to expose the port to the "outside world". That fixed my issue.
Thank you so much! Helped me to open Vendure postgres project on my machine
Thanks for the crystal clear explanation!
Suggestion at 11:00. You're highlighting the container port and not the localhost port. If a user wants a different local port, they should change the the first number, not the second.
Yes you are right Thomas.
sure glad i saw this comment! my local version of postgres was already using port 5432 so i had to set the container port to a different port number (ex 5000:5432)
thank you for your comment I have the local postgres in same 5432 port and I have issues when I try to connect containerized postgres. Changed 5432:5432 to 5000:5432 and my issue is gone. Also I was trying connect directly with container name ( spring.datasource.url=jdbc:postgresql://mycontainername:5432/genel ) and that was keep giving sockettimeoutexception now right property is ( spring.datasource.url=jdbc:postgresql://localhost:5000/genel ) .Sorry for bad english I was stuck there 2 days. I appreciate.
short, simple and useful... thanks
You welcome Gerardo
Docker and PostgreSQL in [21 Minutes] < Fixed the title for you bro!!
he expected that we will watch the video at 2.0x
You just saved my day, thank you! Liked and subscribed :)
Thanks Joana
Thank you for guide, it was really useful!
PS.
I'm on Windows10-Pro and all steps of this tutorial started works for me just after i completely uninstalled Postgres (and ms sql server just in case... (: ) from my PC.
these are good infos to start with docker, thanks
Good, very good. Simple and direct.
Man, this was great. Thanks a lot!!!
My man! Thank you.
Very nice, succinct intro. Thanks for saving me a lot of tie and trouble!
I love you so much my friend ! Thanks a lot
great video... I wanted to ask about persistent data and volumes
So good explanation, love it..
Thank you so much for this! You really saved me a ton of time!
thanks bro ... liked and subcribed it helped a lot
where did 8080 port come from when exposed port was 5432 ? isn't it supposed to be localhost:5432/api/v1/students ?
when i run psql -h localhost -p 5432 -U postgres
i get:
psql: error: connection to server at "localhost" (::1), port 5432 failed: FATAL: role "postgres" does not exist
Great video, clear and to the point! Thanks
It awesome tutorial with explanations and examples. Thank you so much.
This is really good lesson. Thank you!
Very good explanations! Thank you for the great content!
Thanks buddy
Very informative. Thank you
Thanks! Very helpful! Keep up the good work
thanks
This was very helpful. Thanks!
Very useful Thank you brother
Nice job my boy! Help fuc... a lot
Shouldn't we mount a docker volume so that the data persists even if the container is deleted?
Thanks! This was calm, clear and GOT THE JOB DONE. (:
subscribed!
Thanks so much fo the help!
Great tutorial! Thank you!
thanks a lot from Russia!))
You welcome
At 11:15 I get the error:
psql -h localhost -p 5555 -U postgres
psql: error: could not connect to server: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
Why could that be? I deliberately changed the port from 5432 to 5555 because I also have PSQL on my machine and it already uses that port.
something must be using that port. Try a different one
@@amigoscode I would like to ask how can I connect PhpPgAdmin to postgresql. A reply would be much appreciated I'm trying since last Tuesday without anything success. Any link of an article would be appreciated too. Thanks in advance
you saved my day , huge respect
Respect brother
@@amigoscode Respect Amigo
Hey man!
I have the following doubts :
1. If I'm using docker postgres image, then also i need to have postgres in my local machine?
2. I didn't understand when you connected local's postgres to docker's postgres. Like what is the point of that?
3. Please correct me if I am wrong but I have different postgres servers on different ports and my local postgres command can point to any of the server. If I am not explicitly telling the port then it uses postgres server by default which got installed while installing it on local (using homebrew, installer file) and if I explicitly mention the port number to connect with, it could be either the docker's postgres server or the local postgres server. Am I correct?
Very nice.
Thank you!
Thank you! I subbed :)
Great video! the port issue threw me through the window for about 20-30 mins, but the rest is awesome! A script, a few practice runs, and some postop editing could help you meet the 10 minutes if you really wanted to. ;) Thanks again!
How You resolve port issue
Excelente video. La pastilla que necesitaba :)
You welcome mate
Great video! Does the data disappear when you stop the instance? Or, is it still there when you restart the instance? Thanks.
This is the question I have exactly
@@jamie_2452 it does disappear unless you have created persistent volume
@@fly_fast777 Yea, you have to set it up to save the data on your local machine for it to persist using -v i think
Great job thank you for your time and tutorial.
Thanks Ostap
very helpful bro
Amazing video
really good video. helped me alot. thank you. =)
Terrific video, thank you
quick tip. good tip.
Perfect Video
Thanks for this, it did help on the Docker side. However it seems although Postgres installed on my machine, it did not instal psql😕 Anyone had this?
However, although I couldn't run any cli commands on my machine, pgadmin could "see" my databases, but I could run commands from the container while bashed ...could be by design ...although I'm coming from a windows background using a mac so there's probable a "Run as Administrator" type setting I need to use.
I'm also using .Net so still some researching to do.
Hey buddy it works but do you know why when I try to also run the spring application in a container, it refuses connection to the database? It works when I run on Eclipse but not as a docker container (the jar in it)
great explaination , but i am not able to see the test db from localmachine, but its visible when i open from docker container. Thanks
Great Video! thank you Sir.... subscribed
Thanks
Thanks ! Exactly the video I needed to correct errors I made on my first attempt and understand better.
Thanks a lot! Can you show example how do work with images in PostgreSQL?
Dont store images inside postgres. Check my latest video and I teach how to store images using Amazon S3
Unfortunately my spring boot app dont see my database outside, they see database with name postgres, but my db that i created not. I bootstrap my app like you, and i have acceses outside container but my db with name test_database not available
the same is happening to me. I created a test db in docker and can't see it from my app. Do you remember how to solve it?
nice! thanks!
when connecting attempting to connect to the database from local, I got this error:
psql: error: could not connect to server: could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
(I am on a windows system)
I made sure the port was exposed and that none of my firewalls are blocking port 5432. Do you what else could be causing this?
Had the same issue, maybe we can link up and find a solution?
You can configure an other port on docker i guess ?
How to install pg_corn in mac os? do we have other alternative system like pg_corn?
"psql -h localhost -p 5433 -U postgres" , can you please explain me why and what that is ? thanks in advance
Awesome tutorial.
I have a question here. Every time I restart the container, all my databases and tables are getting removed, and I am getting a fresh installed copy. Is there any extra parameter needs to provide to persist the state ?
Yo need to create a Volume in Docker to persist the data... Search in the docker Docs for Volumes
@@rafaelcalderon6658 i dont wanna search, just explain me
@@darthvader8144 😂😂😂😂
Hi, I am just stuck with the step at the time 9:35, because I am doing in window 10 pro. could you explain for windows, where to do the process after this time.
I got the solution myself by working with the SQL Shell(psql)
open psql on your seach bar and thats all
Great Tutorial! I was kind of lost at some point because I was using Windows and KiteMatic(Electron) App.
I got lost at "psql -h localhost -p 5432 -U postgres" because Kitematic predefined another IP address for that container.
Find the correct IP and the you should be able to psql into it
@@amigoscode That was already solved, but thanks!
my question was, is it okay to use KiteMap? I just followed the tutorial from pgAdmin and it exposes my password in environmental variables. I just want pgAdmin4 GUI in my local machine. it is somehow related to PostgreSQL but with a different platform to establish my own database schema. Thanks!
Awesome! Thanks!
You welcome Tiago
Great video, I have what may be an odd or dumb question.
What would be a business case for this?
James Tomblin micro serves, container orchestration, cloud computing, application auto scaling, environmental separation etc. there are multiple. It depends on what business it is.
Excellent!
thx bro☺☺☺
Great video! Is it possible to create a database of images using psql, if so, any tips? thanks!
Database of images what do you mean?
@@amigoscode sorry, newbie here haha. To store a bunch of images (image, title and description) in a database, I read something about blob but I am not sure where to start.
First of all thank you 🙌 👏 🤝 👍 for your tutorial which help me get a new approach to build backend service with Java. Your content is great and I am testimony of how it's accessible and straight forward to cope with it.
I think you could do tutorial on frontend with Angular (essentials and advanced topics) and TypeScript (fundamentals and advanced topics) (type annotation, type inference, type assertion, arrow functions, interfaces, classes, objects, constructors, access modifiers, properties and modules).
If it's possible that you could introduce kotlin too with Micronaut framework that would be 🔥 🔥 🔥
cool I will try
So much thank you
So, even if i use docker i still have to install docker on my pc?
i tried: "docker run --name postgres -e POSTGRES_PASSWORD=pass -p 5432:5432 -d postgres" an it doesnt work, but i did the exact command in the video and its works. What is the difference?
on windows....if you have installed psql just now.... your local server will be started immediately...so switch it off using
*** pg_ctl -D "C:\Program Files\PostgreSQL\9.6\data" stop *** then your psql picks up docker insatnce
Where is the DB data kept? Point out you use Java. Any specific reason to use a uuid as an id?? Lots of little annoying inconsistencies
7:20 what's up with the slurping :D
joking I love your tutorials
A very good tutorial.
I am still a bit confused though: what will happen if I load a big database dump to the postgres in the docker container (from bakcup .sql file for example), will docker adjust it's size automatically?
I tried deploy postgresql 11 on docker: Backed up my 4GB database into 2GB .sql file using pg_dump. Sent the .sql file into docker container using docker cp. After that, I created an empty db and restored the 2GB .sql file into the empty db using psql cli inside the docker, not the psql at the host. After that, the size of my container was just the same as the host. I do not know whether the size is shrinkable (whatever it is called),
maybe I could have restored the db inside the container using host's psql without copying the backup first, unnecessary perhaps.
edit: container size was before restore:
thanks bro
Doesn't work for me, pg commands always try to connect me to my local instance of postgres and never the docker one...
Hey Amigo, Thanks and please tell how can I connect postgressql to a boot project that exists in docker?
Checkout my courses
APG Learning in boot, locate application.properties
Set the postgres jdbc url
Update boots Pom file
Done;
perfect
Thanks but the port info is incorrect.
from the docker documentation;
-p 8080:80 Map TCP port 80 in the container to port 8080 on the Docker host.
the first port is the host port while the second port is the container one.
What did you tell about?
Top from galaxies!
Super!
One key point you have missed is that postgres expects the username to be same as database name. Else it wont work
Thanks
I am getting this error while connecting ti postgres "Password:
psql: FATAL: password authentication failed for user"
Had the same issue ~ spent 3 days trying to fix. Issue was i had local install of postgres and it hogs the port 5432. Had to find it and uninstall.
used these command in terminal on local machine to find it :
to find if port being used: netstat | grep 5432
to find application install location: ps auxw | grep post
stackoverflow.com/questions/12028037/postgres-app-could-not-start-on-port-5432/28917372