postgresql (1)

💻 Programming

윈도우에서 Docker로 PostgreSQL 띄우기

오랜만에 포스팅 하네요.


자, 오늘은 윈도우에서 도커를 이용해서 PostgreSQL 설치하고 접속해보도록 할 겁니다.


왜 도커에 설치하냐구요?


docker를 이용하면 정말 쉽고 빠르게 다양한 환경을 구성할 수 있다는 정말 정말 큰 장점이 있기 때문이죠.


가장 먼저 PC에 도커를 설치해야 겠지요.


이번 포스팅에서는 도커 설치 부분은 건너뛰는 것으로 하겠습니다. 


구글링하면 엄청 많이 나올거거든요. 그걸 참고 하시면 될 것 같습니다.


윈도우에는 윈도우용 인스톨러를 이용하면 금방 설치를 할 수 있으니까요.


일단 제 환경은 윈도우8에다가 도커를 윈도우 인스톨러를 이용해서 설치를 한 상태입니다.


사실 도커 조금 만져보신 분들한테는 엄청 쉬운 일이 되겠지만 처음 해보시는 분들한테는 조금 어려울 수도 있습니다.


다음 순서에 따라서 진행해보도록 하죠.


1. cmd 창에서 docker 가 제대로 설치되었는지 확인

2. docker를 이용해서 postgreSQL 설치 및 데몬 형태로 실행

3. DBeaver 데이터 베이스 관리 툴을 이용하여 접속 및 dml문 실행


자, 그럼 1번 부터 해볼까요?


일단 cmd창을 띄웁니다. 어떻게 띄우는지 모르시는 분들은 윈도우키를 한번 누른 뒤에 cmd 입력하고 엔터 치시면 됩니다.

(윈도우 7 이하인 경우에는 윈도우키 + c 를 눌러서 실행 창을 띄운뒤에 cmd 라고 입력해주시면 될겁니다.)



위와 같은 화면이 나왔으면 이제 docker 라고 치고 엔터를 칩니다.



위 사진처럼 옵션 목록이 주루루룩 나와주면 제대로 설치가 된겁니다.


이제 아래 명령어를 실행시켜 주세요


docker run --name myPostgreSQL -e POSTGRES_USER=GilDong -e POSTGRES_PASSWORD=1234 -d -p 5432:5432 postgres


위 명령어는 postgresql 최신버전을 다운로드 받아서 로컬 PC의 5432 포트와 postgresql 컨테이너의 5432 포트를 연결시켜주고 myPostgreSQL 이라는 이름의 컨테이너를 실행시켜줍니다.


-d 옵션은 데몬으로 띄우라는 의미입니다.

-e POSTGRES_USER=GilDong -e POSTGRES_PASSWORD=1234 옵션은 GilDong이라는 이름의 1234 비번을 갖는 새로운 사용자를 생성하라는 의미입니다.


각 옵션에 대한 설명은 docker help run 을 실행시키면 확인 하실 수 있습니다. 

docker run --help 라고 하셔도 동일한 결과를 확인 할 수 있습니다.


만약, 다운로드 받지 못하고 이상한 에러가 발생한다면 트러블슈팅을 해주셔야 합니다.


참고로, 윈도우 환경에서는 CMD창을 띄울 때마다 docker-machine 을 이용해서 환경변수 설정을 해줘야 docker의 사용이 가능하더군요.


에러메시지를 잘 읽어보고 구글링 조금만 하시면 금방 해결할 수 있을 겁니다.


자, 그럼 여기까지 잘 설치가 되신 분들은 이제 DBeaver와 같은 데이터베이스 툴을 실행을 시켜주세요.


물론 postgreSQL 드라이버를 지원하는 툴을 사용해야겠죠.


DBeaver 가 실행이 됐으면 아래 사진처럼 좌측 상단의 아이콘을 클릭해서 새로운 커넥션을 생성합니다.








여기서 Host에는 docker-machine ip 명령어를 실행해서 나오는 아이피를 적어주시면 됩니다.

만약 docker-machine 이 설치되어있지 않다면 별도로 설치를 해주셔야 합니다.

(참고로 docker-machine은 docker 프로젝트 중 하나 입니다.)


그리고 database와 user에는 위에서 실행할 때 POSTGRES_USER 옵션에 주었던 이름을 동일하게 주시면 됩니다.

패스워드 역시 마찬가지로 POSTGRES_PASSWORD 옵션에 주었던 값을 그대로 주시면 됩니다.


입력을 다 하고난 뒤 우측 하단에 있는 Test Connection ... 버튼을 클릭하여 정상적으로 접속이 되는지 확인합니다.




정상적으로 연결이 된다면 위와 같은 팝업창이 뜨게 됩니다.


별거 없죠?


이제 Next 해서 커넥션 생성하고 DML문 입력해서 실행해보시면 됩니다~


이상으로 오늘 포스팅을 마칩니다. 집에 갈 시간이 다 되어서 너무 빨리 쓰다보니 대충 쓰게 되네요.


궁금한 점이나 잘 안되시는 분들 댓글 남겨주시면 빠른 답변 남겨드릴게요~ ㅎㅎ