docker postgresql

yoon__0_0·2024년 6월 3일
0

이어드림 수업

목록 보기
58/103

postgreSQL image 받기

  • 위 링크에서 해당 Postgres 받기
docker image pull postgres

postgresSQL container run

  • run 명령어
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
  • 상태 확인하기

container로 들어가기

$ docker container exec -it {container id} /bin/bash

# 들어간 후 
/# psql -U postgres
  • postgresql 로 들어오기 성공

postgresql 이용

  • db 만들고 확인
CREATE DATABASE ml;

\list

데이터 보관

  • stop : 다시 들어가도 데이터가 사라져있지 않음
docker container stop {container id}
  • rm : 데이터가 모두 사라짐
docker container rm {container id}

=> 즉, 컨테이너를 삭제하면 데이터도 삭제됨.

서버 파일과 연동

  • 서버의 파일과 도커 속 파일과 연동
docker container run -e POSTGRES_PASSWORD=mysecretpassword -v /home/ubuntu/work/test:/work/test:rw -d postgres
  • v옵션 : 볼륨 연결 옵션으로 {호스트경로}:{컨테이너경로} 로 작성해주면 됨.

  • 도커로 들어가서 확인해보기 : 도커 컨테이너 밖에 파일과 연동된 것을 볼 수 있음.

docker container exec -it {container id} /bin/bash

  • 컨테이너 속에서 파일을 만들어도 동일하게 밖에 저장됨.

도커 볼륨

  • DB를 연결하여 도커를 사용하기 위해서 활용
  • 서버의 파일 시스템과 컨테이너와 연결 해놓음.
  • 컨테이너가 사라져도 데이터는 사라지지 않음
도커 볼륨 실습
  • docker volume 확인
docker volume ls
  • docker volume 생성 : 이름은 myvolume01
docker volume create myvolume01
  • 만들어진 volume 확인하기
    • Mountpoint : 경로== 서버에 생성된 경로
docker volume inspect myvolume01

# 사용자 계정으로 접속
sudo -i

# Mountpoint경로로 가보기
cd /var/lib/docker/volumes/myvolume01/_data/

# 안에 뭐가 있을까?
ls


  • docker volume 과 연동하기
    • volume 지정시 => volume이름:docker안에서 data가 저장되는 곳 지정
docker container run -e POSTGRES_PASSWORD=myscretpassword -v myvolume01:/var/lib/postgresql/data -d postgres
  • docker 속에서 postgres Role 생성해보기
# docker 안으로 들어가기
$ docker container exec -it {container id} /bin/bash

# postgresql로 들어가기
psql -U postgres

# user 만들기 - yoonjae라는 이름의 user
CREATE USER yoonjae PASSWORD '1234' SUPERUSER;

# user 확인
\du

# psql 빠져나오기
\q

# docker에서 나오기 
exit
  • docker container 삭제해보기
    • docker container 를 삭제해도 volume 에는 살아 있는 것을 확인해보기 위해서
docker container stop {container id}

docker container rm {container id}
  • docker 새로 만들고 새로운 container 에도 yoonjae user가 존재하는지 확인
# docker container 새로만들기
docker container run -e POSTGRES_PASSWORD=myscretpassword -v myvolume01:/var/lib/postgresql/data -d postgres

# 새로만들어진 container 작동, id 확인
docker container ls

# container 터미널로 입장
docker container exec -t {container id} /bin/bash

#psql로 입장
psql -U postgres

# user 확인
\du
profile
신윤재입니다

0개의 댓글