Docker and PostgreSQL in [10 Minutes]

Поділитися
Вставка
  • Опубліковано 7 лип 2024
  • Docker is a fantastic way to run spin up containers that work on any environment removing the saying "BUT IT WORKS ON MY MACHINE". In this tutorial you will learn how to use Docker with Postgres allowing to spin up database instances so that you can have a database for development without any fuss.
    Here are the skills you will acquire at the end of this tutorial
    ➡️ How to spin up a docker container
    ➡️ Download and run Posgresql Image
    ➡️ How to Connect to the database instance from
    1️⃣ Your local box using psql on the terminal/cmd
    2️⃣ Spring Boot 2.+ Application
    👉🏽 Following me on my Instagram for programming tips
    👨🏽‍💻 amigoscode 👨🏽‍💻
    👉🏽 Join me on my brand new Facebook group where we can hold discussions about programming
    👍 / 456035171490753 👍
    👉🏽 www.amigoscode.com for programming course 👈🏽
    If you have any questions please drop a message and do not forget to subscribe to this CHANNEL for more useful videos.

КОМЕНТАРІ • 219

  • @najibla
    @najibla 4 роки тому +265

    I played the video at 2x speed to get to 10 minutes promised in the title :D

    • @FIXENDIARY
      @FIXENDIARY 4 роки тому

      😂

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

      You are dark sir. Time is relatively relative

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

      @@classicguy7813 obviously not as relative as you believe

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

      XDDDDDDD ohh myy gooooooodddd youuu aareeee my herooooo !!!! 😂😂😂😂😂😂

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

      You have shown us how to make @Amigoscode an honest man. Respect.

  • @martgryfny
    @martgryfny 4 роки тому +61

    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

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

      sorry for the confusion. I meant the course. amigoscode.com/courses/postgresql

    • @aziz4bliss
      @aziz4bliss 4 роки тому +2

      I too fell into the similar loop. It is actually frustrating.

    • @chenchi6623
      @chenchi6623 4 роки тому +2

      rofl...

    • @milesblaq998
      @milesblaq998 4 роки тому +1

      lmao this is hilarious man

  • @tobiasfuchs2502
    @tobiasfuchs2502 Рік тому +23

    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.

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

      thank you :)

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

      Gracias!!

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

      "psql -h localhost -p 5433 -U postgres" , can you please explain me why and what that is ? thanks in advance

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

      thanks a lot man

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

      @@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)

  • @bxbrenden
    @bxbrenden 3 роки тому +10

    This is perfect, great explanation! Docker makes it so much easier to tinker with databases without spending tons of time configuring a service.

  • @AaronGayah-dr8lu
    @AaronGayah-dr8lu 9 місяців тому

    You have no idea how important this video was to me, thank you. I'll look over your course offerings.

  • @krasy8
    @krasy8 4 роки тому +2

    I'm pretty new to your channel, discovered incidentally while researching tutorials re: spring and must say - LOVING IT!!! Got yourself another subscriber 👍

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

    Man, it's just awesome how you connect docker+postgres+javaApp+browserView to show it's working, great!

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

    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.

  • @EdCardinal-MindThump
    @EdCardinal-MindThump 4 роки тому

    Very nice, succinct intro. Thanks for saving me a lot of tie and trouble!

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

    Great video, clear and to the point! Thanks

  • @nightqnearth3617
    @nightqnearth3617 4 роки тому +2

    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.

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

    Best tutorials I've ever watched from anyone thus far thank you!

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

    Wow... Amigoscode you did it in just 8 minutes and 51 seconds, thanks!👍

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

    The best thing I`ve seen on internet in month. Such a great explanation. Thank you

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

    Thanks for the crystal clear explanation!

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

    Thank you so much for this! You really saved me a ton of time!

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

    Thank you for that great video! This is exactly, that I've searched!

  • @SuprBrian64
    @SuprBrian64 4 роки тому

    This was very helpful. Thanks!

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

    Good, very good. Simple and direct.

  • @shaankhan1768
    @shaankhan1768 5 років тому

    Terrific video, thank you

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

    This video has saved me days & probably hundreds of dollars for my client, thanks ^^

  • @user-qk3ey6tb1k
    @user-qk3ey6tb1k 2 роки тому

    This is really good lesson. Thank you!

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

    Man, this was great. Thanks a lot!!!

  • @rapasebastian5678
    @rapasebastian5678 4 роки тому +1

    Very good explanations! Thank you for the great content!

  • @kylerebstock1487
    @kylerebstock1487 4 роки тому

    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!

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

    Great tutorial! Thank you!

  • @user-ql2dh1xq9p
    @user-ql2dh1xq9p 2 роки тому

    Thank you so much! Helped me to open Vendure postgres project on my machine

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

    You just saved my day, thank you! Liked and subscribed :)

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

    It awesome tutorial with explanations and examples. Thank you so much.

  • @limbu966
    @limbu966 4 роки тому +2

    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.

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

    Thanks! This was calm, clear and GOT THE JOB DONE. (:

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

    My man! Thank you.

  • @doniwiratmoko1062
    @doniwiratmoko1062 5 років тому

    Excellent!

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

    Very informative. Thank you

  • @nycolassilvestre2475
    @nycolassilvestre2475 4 роки тому

    Very nice.
    Thank you!

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

    Thanks so much fo the help!

  • @felipeministerio7553
    @felipeministerio7553 5 років тому

    Nice job my boy! Help fuc... a lot

  • @tatemo_labs
    @tatemo_labs 4 роки тому +1

    short, simple and useful... thanks

  • @darwinvelascoecu3815
    @darwinvelascoecu3815 5 років тому

    Excelente video. La pastilla que necesitaba :)

  • @vjd5865
    @vjd5865 4 роки тому +1

    you saved my day , huge respect

  • @cyrilwaechter5065
    @cyrilwaechter5065 5 років тому

    Thanks ! Exactly the video I needed to correct errors I made on my first attempt and understand better.

  • @aguafria9565
    @aguafria9565 4 роки тому +10

    Docker and PostgreSQL in [21 Minutes] < Fixed the title for you bro!!

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

      he expected that we will watch the video at 2.0x

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

    these are good infos to start with docker, thanks

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

    So good explanation, love it..

  • @estebanisswimming
    @estebanisswimming 4 роки тому

    Thanks! Very helpful! Keep up the good work

  • @ostapbender5791
    @ostapbender5791 4 роки тому

    Great job thank you for your time and tutorial.

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

    I love you so much my friend ! Thanks a lot

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

    nice! thanks!

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

    Very useful Thank you brother

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

    Thanks bro, you've saved me a lot of time. Have a nice year!)))

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

    Perfect Video

  • @tiagosutter8821
    @tiagosutter8821 5 років тому

    Awesome! Thanks!

  • @me360ot
    @me360ot 4 роки тому +11

    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.

    • @amigoscode
      @amigoscode  4 роки тому +5

      Yes you are right Thomas.

    • @skysaville
      @skysaville 2 роки тому +2

      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)

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

      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.

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

    Amazing video

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

    really good video. helped me alot. thank you. =)

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

    very helpful bro

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

    quick tip. good tip.

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

    Thank you! I subbed :)

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

    Super!

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

    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?

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

    thanks bro ... liked and subcribed it helped a lot

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

    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)

  • @VitaliyVereschagin
    @VitaliyVereschagin 6 років тому +1

    Thanks

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

    So much thank you

  • @simonmpoy4747
    @simonmpoy4747 4 роки тому

    Great Video! thank you Sir.... subscribed

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

    great video... I wanted to ask about persistent data and volumes

  • @arunthomas8667
    @arunthomas8667 2 роки тому +2

    Shouldn't we mount a docker volume so that the data persists even if the container is deleted?

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

    thanks bro

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

    thx bro☺☺☺

  • @evaveegee64
    @evaveegee64 8 місяців тому +1

    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

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

    perfect

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

    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.

  • @heyyrudyy404
    @heyyrudyy404 4 роки тому

    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 🔥 🔥 🔥

  • @NyvekBr
    @NyvekBr 5 років тому

    thanks

  • @qunaturm
    @qunaturm 4 роки тому

    thanks a lot from Russia!))

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

    great explaination , but i am not able to see the test db from localmachine, but its visible when i open from docker container. Thanks

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

    Top from galaxies!

  • @vinceramcesoliveros6739
    @vinceramcesoliveros6739 5 років тому

    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
      @amigoscode  5 років тому

      Find the correct IP and the you should be able to psql into it

    • @vinceramcesoliveros6739
      @vinceramcesoliveros6739 5 років тому

      @@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!

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

    where did 8080 port come from when exposed port was 5432 ? isn't it supposed to be localhost:5432/api/v1/students ?

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

    So, even if i use docker i still have to install docker on my pc?

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

    How to install pg_corn in mac os? do we have other alternative system like pg_corn?

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

    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?

  • @Synox89
    @Synox89 4 роки тому +2

    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
      @amigoscode  4 роки тому

      something must be using that port. Try a different one

    • @everything4u58
      @everything4u58 4 роки тому

      @@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

  • @java_couch
    @java_couch 4 роки тому

    dude you are the best .I have one question - if i already have a database and want to put in into image what i need to do?

    • @amigoscode
      @amigoscode  4 роки тому

      Thanks buddy. What my course on Docker I teach that

  • @Ganjwqeqweqwe
    @Ganjwqeqweqwe 4 роки тому

    Thanks a lot! Can you show example how do work with images in PostgreSQL?

    • @amigoscode
      @amigoscode  4 роки тому

      Dont store images inside postgres. Check my latest video and I teach how to store images using Amazon S3

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

    "psql -h localhost -p 5433 -U postgres" , can you please explain me why and what that is ? thanks in advance

  • @jamestomblin9315
    @jamestomblin9315 4 роки тому

    Great video, I have what may be an odd or dumb question.
    What would be a business case for this?

    • @HughbInc
      @HughbInc 4 роки тому

      James Tomblin micro serves, container orchestration, cloud computing, application auto scaling, environmental separation etc. there are multiple. It depends on what business it is.

  • @user-sl1ek4vd9u
    @user-sl1ek4vd9u 4 роки тому +1

    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

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

      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?

  • @suchithsuddala
    @suchithsuddala 4 роки тому +1

    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?

    • @daksheshnimishe1485
      @daksheshnimishe1485 4 роки тому

      Had the same issue, maybe we can link up and find a solution?

    • @PlaYourSongianis
      @PlaYourSongianis 4 роки тому

      You can configure an other port on docker i guess ?

  • @karlmarxt3792
    @karlmarxt3792 4 роки тому

    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.

    • @karlmarxt3792
      @karlmarxt3792 4 роки тому

      I got the solution myself by working with the SQL Shell(psql)

    • @amigoscode
      @amigoscode  4 роки тому

      open psql on your seach bar and thats all

  • @amargupta1728
    @amargupta1728 4 роки тому

    Hey Amigo, Thanks and please tell how can I connect postgressql to a boot project that exists in docker?

    • @amigoscode
      @amigoscode  4 роки тому

      Checkout my courses

    • @HughbInc
      @HughbInc 4 роки тому

      APG Learning in boot, locate application.properties
      Set the postgres jdbc url
      Update boots Pom file
      Done;

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

    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?

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

      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:

  • @pynchia4119
    @pynchia4119 4 роки тому

    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

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

    Great video! Does the data disappear when you stop the instance? Or, is it still there when you restart the instance? Thanks.

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

      This is the question I have exactly

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

      @@jamie_2452 it does disappear unless you have created persistent volume

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

      @@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

  • @MoroseGrouch
    @MoroseGrouch 4 роки тому

    if i didnt install this should i be worried that it is there?

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

    7:20 what's up with the slurping :D
    joking I love your tutorials

  • @olgunkaya_
    @olgunkaya_ 5 років тому +1

    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.

    • @ttsrg
      @ttsrg 5 років тому

      What did you tell about?

  • @AnkitGupta104
    @AnkitGupta104 4 роки тому +1

    I am getting this error while connecting ti postgres "Password:
    psql: FATAL: password authentication failed for user"

    • @abefong54
      @abefong54 4 роки тому +2

      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

  • @SomashekarGAcharanu
    @SomashekarGAcharanu 5 років тому +1

    when i run the following command
    docker run --name postgres-0 -e POSTGRES_PASSWORD=password -d -p 5432:5432 postgres:alpine
    container is not starting it is exiting
    docker logs postgres:alpine
    chmod: /var/lib/postgresql/data: Permission denied

    • @nightqnearth3617
      @nightqnearth3617 4 роки тому

      The same. I just removed 'p 5432:5432' from this command and it run successfully
      I removed because in official tutorial we write without '-p' key: hub.docker.com/_/postgres

  • @ItachiUchiha-fo9zg
    @ItachiUchiha-fo9zg 2 роки тому

    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