반응형
환경
mac - monterey 12.0.1
postgres - 14.1
spring boot - 2.5.2
docker - 20.10.10
PostgreSQL Image 설치 및 실행
먼저 DockerHub 에서 Postgres 버전을 확인해 주고 아래 명령어를 실행해 주면 Postgres Container 를 실행 (없다면 설치까지) 할 수 있다.
docker run -it --rm --name postgres-test -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgres
- 명령어 설명 (Docker 명령어)
- -it : 컨테이너가 실행 후 터미널 명령어를 입력하기 위해 사용 (-i 와 -t 옵션을 같이 사용하는 것)
- --rm : postgres 프로세스가 종료되면 container도 같이 종료
- --name postgres-test : postgres container 의 이름을 postgres-test 로 지정하여 실행
- -e POSTGRES_PASSWORD=password : postgres의 환경변수로 외부에서 접속할 때 필요한 비밀번호를 설정해줘야함
- -p 5432:5432 : 호스트와 container 의 5432번 포트를 포트포워딩
- -d : container를 백그라운드에서 실행
- postgres : postgres image 를 실행, [:tag] 를 입력하지 않으면 :latest 버전으로 실행된다.
docker: Error response from daemon: driver failed programming external connectivity on endpoint angry_lamport (fc753990860795dc21dc196c2cc2f144c1189198a4c337bfeb5f8a2736556f2e): Bind for 0.0.0.0:5432 failed: port is already allocated.
* 만약 기존에 5432포트(또는 본인이 지정한 host포트)가 사용중이라면 위와 같은 에러 메세지가 나게되니 다른 포트를 사용하거나 해당 포트를 사용하는 프로세스를 종료하고 다시 실행해주면 된다.
docker container ls
설치가 되면 위 명령어를 통해 container 가 실행된 것을 확인할 수 있다.
또는 실행된 로그를 확인하고 싶다면 아래의 명령어를 통해 확인할 수 있다.
docker logs [container id or name]
Postgres Container 터미널에 접속
$docker exec -it postgres-test bash
마지막에 bash 명령어의 입력으로 container shell에 접속이 된다.
계정은 'root' 호스트이름은 container의 id로 설정되어있다.
그리고 psql 명령어로 postgres에 접속 및 데이터베이스 생성 등 작업이 가능하다.
IntelliJ IDE를 통해 테스트 연결까지 확인이 되었다.
* Container 를 삭제하게되면 Container 내부에 있는 데이터(postgres 계정, 테이블, 디비 등)도 모두 삭제되므로 유지되어야 할 데이터는 Container 내부가 아닌 외부에 저장하도록 해야한다.
반응형
'Docker' 카테고리의 다른 글
[Docker] Docker에서 RabbitMQ Image생성 및 실행 (0) | 2021.11.17 |
---|---|
[Docker] Docker의 Network 종류 및 명령어 (0) | 2021.11.17 |
[Docker] Dockerfile을이용하여 Spring 프로젝트 Image 생성 및 실행 (0) | 2021.11.16 |
[Docker] Docker 명령어 (추가 중) (0) | 2021.11.16 |
[Docker] Docker Desktop 설치 및 사용법 (for mac) (2) | 2021.11.15 |