일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 코멘토실무PT
- 데이터스키마
- 리액트
- golang
- 개발실무
- 스키마모델
- 데이터베이스
- 개발공부
- 웹서버
- HTTP
- 코멘토
- 개발자되기
- 유데미
- 코딩강의
- 자바
- 실무PT
- 알고리즘
- tableplus
- 개발 공식문서 읽기
- 자료구조
- 컴공과개념정리
- 개발공식문서 어려움
- 개발 영어실력
- 개발 공식문서
- 개발자공통지식
- Go언어실무
- Go언어
- jsx
- 파이썬
- postgredb
- Today
- Total
웹개발일지
[1-2] Postgres & Docker 포스그레 설치 후 도커 실행까지 본문
이 글은 유데미 강좌를 들으며 아래 공식 문서를 따라 실습한 내용입니다.
https://hub.docker.com/_/postgres
postgres - Official Image | Docker Hub
Note: the description for this image is longer than the Hub length limit of 25000, so has been trimmed. The full description can be found at https://github.com/docker-library/docs/tree/master/postgres/README.md. See docker/hub-beta-feedback#238 for more in
hub.docker.com
1. 도커 컨테이너에서 postgres 이미지를 받기위해 다음 명령을 수행한다.
docker pull postgres:<image tag>
도커가 포스그레 이미지를 다운받는 명령이다. 여기서 포스그레가 이미지가 되고 이미지태그는 포스그레 버전을 뜻한다. 콜론은 구분을 위함이다. 공식 문서를 참고하여 원하는 버전을 다운로드한다. 여기서는 12-alpine 을 사용했다.
docker pull postgres:12-alpine
설치 후 images라는 커맨드를 주면 설치된 이미지 현황을 볼 수 있다.
docker images
도커 컨테이너 실행하기
도커로 컨테이너를 실행하여 포스그래 db를 연다. 위 명령어로 할 수 있는 건 다음과 같다.
1. user와 password 설정을 한다.
2. 인자로 image name 을 넣어준다. -> Postgres
e- 컨테이너의 환경변수 설정 -> 컨테이너를 커스텀할 수 있다.
e -flag
d- 컨테이너를 백그라운드에서 실행하겠다. (detach mode)
d -flag
컨테이너가 실행되면 기본 데이터베이스가 생성된다. postgres_user 가 기본값이다
db 실행
docker run --name postgres12 -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=secret -d postgres:12-alpine
중요한개념, 포트매핑
바로 위 코드를 보면 -pe뒤에 5432:5432로 포트지정을 해준것을 볼 수 있다.
다만 처음 run할 때 포트지정을 안하고 실행한 걸 되돌리고 다시하고 싶었다. 이런경우 컨테이너 실행을 중단후 삭제 해주어야한다.
1. 중단
docker stop fc4d33cf0a46
2. 삭제
docker rm fc4d33cf0a46
명령어 뒤 container id는 docker ps 명령시 조회 가능하다. 내가 생성한 시간이 얼마나 지났는지까지 조회되므로 최근 생성한 컨테이너를 찾아 바로 삭제할 수 있었다.
지난 코멘토 실습으로 maridb를 연결해보고 이번엔 postgres를 연결하는 작업을 수행해보니 도커의 개념이 확실히 더 와닿는다. 별도의 가상 운영체제에서 db를 실행하는 것을 수행했다. 아직까지 조금어려운 개념은 포트지정인 것 같다. 위에서 5432포트를 지정해줬는데 이미 있다는 오류가 나서 해결해봐야 할 것 같다.
위 문제를 해결하려고 5432포트에 이미 존재한다는 컨테이너를 삭제하고 실행하는 것을 반복했으나 같은 오류가 계속 떴다. 아직 도커에 대해 잘 모르는 부분이라 해당 포트를 5432가 아닌 5430으로 바꿔주고 진행했다. 5430:5432 이렇게 있으면 5430이 내 host에서 사용중인 Port이고 5432가 컨테이너 안에서 실행될 port이다.
'데이터베이스' 카테고리의 다른 글
관계형 DB 특징 및 구성요소 (0) | 2023.05.14 |
---|---|
데이터 베이스 기본 (1) | 2023.05.14 |
[1-3] 데이터베이스 마이그레이션 과정 - golang (0) | 2023.01.12 |
[1-2] TablePlus - ERROR: table " " does not exist (0) | 2023.01.11 |
[ 1-1 ] Postgres db 스키마 생성하기 (1) | 2023.01.06 |