내 컴퓨터에 Docker에 들어있는 PostgreSQL에 접속하기

이 글은 Docker에 대한 전반지식과 Database에 대한 기본 지식이 있다는 전제하게 쓰여졌습니다. 그점 양해부탁드려요.

Docker가 있어서 PostgreSQL을 설치하고 관리하기가 참 쉬워진거 같아요. 그냥 아래 명령을 날리면 바로 Local에 설치, 실행이 되거든요.

$ docker run -d -p 5432:5432 --name my-postgres -e POSTGRES_PASSWORD=my-password my-user

위의 명령은 Docker container로 정의되어있는 PostgreSQL을 시작하고 -p <host_post>:<container_port> <- 이 부분에 의해서 컨테이너 안의 포트와 실제 내 컴퓨터의 포트가 서로 연동이 되는데요, 위에서는 같은 포트번호를 적어주었으니 PostgreSQL의 기본포트 5432를 컨테이너와 내 컴퓨터의 포트에 연결하겠다는 의미에요. 내 컴퓨터에서 5432포트를 이미 다른 프로그램이 쓰고 있는 경우에는 앞에 포트번호를 다른걸로 바꿔주면 됩니다.

그럼 이제 컨테이너 안으로 들어가서 PostgreSQL데이타베이스에 접속해볼까요? 일단 아래의 명령을 치면 PostgreSQL를 품고 있는 Docker컨테이너에 접속이 됩니다.

$ docker exec -it my-postgres bash

이제 방금 설치한 PostgreSQL에 접속해서 새로운 데이타베이스 mydb를 만들어볼게요.

root@cb9222b1f718:/# psql -U my-user
psql (10.3 (Debian 10.3-1.pgdg90+1))
Type "help" for help.
postgres=# CREATE DATABASE mydb;
CREATE DATABASE
postgres=#\q

이제 컨테이너에서 나와서 해당 데이타베이스에 접근할수 있어요

$ psql -h localhost -p 5432 -U my-user -W
Password for user my-user: ****

자 이제 그 안에 table도 만들고 하시면 됩니다. PostgreSQL명령어에 익숙하지 않으신 분들은 PgAdmin같은 Graphic UI 툴을 설치하셔서 편리하게 이용하셔도 좋을것 같아요. 그럼 오늘도 좋은 하루 되세요!

Source: https://medium.com/better-programming/connect-from-local-machine-to-postgresql-docker-container-f785f00461a7