일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 코딩테스트
- 비동기
- spring boot
- map()
- docker
- Java
- 자바
- 자바스크립트
- EUREKA
- JavaScript
- 스프링 클라우드
- JS
- jQuery
- SpringBoot
- 프로그래머스
- Spring Cloud
- spring security
- leetcode
- 스프링부트
- 유레카
- date
- gitlab
- 스프링
- Spring
- GIT
- IntelliJ
- STS
- map
- 도커
- OAuth
- Today
- Total
RATSENO
[Docker]윈도우에서 postgresql 설치 후 접속 시 권한 문제 본문
윈도우10 환경에서 도커설치 후
도커에 postgresql을 사용하기 위해 postgresql 컨테이너를 설치 후 실행 중 문제가 발생하였습니다.
먼저 docker에 postgresql 컨테이너를 설치해 보겠습니다.
설치하기에 앞서 먼저 docker ps -a 명령어를 이용하여 설치되어있는 컨테이너 목록들을 확인합니다.
postgres가 이미 설치되어 있기때문에 해당 컨테이너를 삭제하겠습니다.
해당 컨테이너가 이미 running 중이기 때문에 삭제할 수 없다는 에러가 출력됩니다.
컨테이너를 stop 시키겠습니다.
다시 삭제를 시도해보겠습니다.
docker ps -a 명령어로 삭제 되었는지 확인해봅시다.
정상적으로 삭제된것을 확인할 수 있습니다.
이어서 postgres를 설치해보겠습니다.
-p 5432:5432
로컬 호스트와 5432포트와 도커 컨테이너의 5432 포트를 맵핑
POSTGRES_DB=springdata
DB이름은 springdata
--name postgres_boot
컨테이너의 이름
-d
demon모드로 백그라운드로 띄우겠다
postgres
설치할 image의 이름
exec
-컨테이너 내부에서 커맨드라인을 수행하도록 외부에서 입력을 넣는 것입니다.
docker exec (옵션) (컨테이너 이름 또는 아이디의 앞부분 일부) (커맨드)
-i
컨테이너와의 입출력을 interactive하게 설정한다.
-t
타겟이 되는 어느 컨테이너에 명령어를 실행할 것인지
postgres_boot
타겟 컨테이너
bash
실행할 명령어
위의 명령어를 실행하게 되면 postgres_boot 라는 컨테이너 안으로 들어오게 됩니다.
psql
postgres DB에 postgres 롤로 접속
하게 되면
psql: FATAL: role "postgres" does not exist
라는 오류가 출력되게 됩니다.
이것은 기본으로 명시한 디비에 접근할 때 postgres라는 유저로 접근을 시도하기 때문에 발생하는 오류라고 합니다.
(위에서 저희는 POSTGRES_USER=onestar 라고 셋팅하여 postgres를 설치하였습니다.)
그래서 직접 명시적으로 --username을 기입하여 접근하게 되면 문제를 해결할 수 있습니다.
psql --username (유저명) --dbname (DB명)
'DEV > DevOps' 카테고리의 다른 글
[docker]redis 설치하기 (0) | 2020.09.17 |
---|---|
[Docker]도커 프라이빗 레지스트리 구성 후 이미지 파일 올리기. (1) | 2020.08.31 |
[Docker]간단 명령어 정리 (0) | 2020.08.18 |
KONG API GATEWAY 설치 (Docker for window) (0) | 2020.08.06 |
[Linux]su, sudo 명령어 차이 (0) | 2020.01.03 |