불친절한 블로그

[AWS] EC2 - docker 환경에 postgreSQL 설치하기 본문

Project/대스타 사업화 한국수목원정원관리원

[AWS] EC2 - docker 환경에 postgreSQL 설치하기

오누! 2023. 3. 30. 14:27
반응형

https://onu0624.tistory.com/26

 

[Docker] docker에 postgreSQL 연결하기

1. postgres 이미지를 받습니다. $ docker pull postgres 2. 데이터베이스 계정설정 $ dockr run -d -p 5432:5432 --name pgsql -e POSTGRES_PASSWORD=1234 postgres 3. 컨테이너에 접속 후 postgres 설정 $ docker exec -it pgsql bash $ psql -

onu0624.tistory.com

 

이전글에서 로컬환경에 docker로 postgreSQL을 설치했었다.

이번에는 AWS EC2에 docker로 postgreSQL을 세팅하려고 한다.

 

인스턴스에 접근해서 도커를 설치한다.

$ sudo amazon-linux-extras install docker

최근 amazon linux로 인스턴스를 생성하면 2023버전으로 시작이 되는데

그 환경에서는 amazon-linux-extras 명령어가 먹히지 않아서

이전버전 amazon linux 2 로 진행하였다.

 

도커 서비스를 시작해준다.

$ sudo service docker start

 

인스턴스가 재시작 되었을때 자동으로 docker 서비스가 실행될 수 있도록 한다.

이후 인스턴스를 재시작 해준다.

$ sudo chkconfig docker on
$ sudo reboot

 

도커가 잘 설치되었는지 버전 확인한다.

$ docker version

 

 


선택사항으로 docker compose를 설치하는 방법을 공유한다.

$ sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

 

권한 부여 해준다.

$ sudo chmod +x /usr/local/bin/docker-compose

 

도커 컴포즈가 잘 설치되었는지 버전 확인해준다.

$ docker-compose version

 


 

docker를 통해 postgres를 받아온다.

$ docker pull postgres

 

postgres를 실행해준다.

포트의 경우 컨테이너와 맞춰주기 위해 postgres 포트인 5432를 맞춰주고,

접속 패스워드를 같이 설정해준다.

$ docker run -d -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=12341234 postgres


선택사항으로 volume 선택을 해준다.

데이터베이스의 역할을 하기위해서는 컨테이너가 중지되었을때

데이터가 사라지는 것을 막기 위해서 볼륨을 생성해준다.

$ docker volume create pgdata

 

생성된 볼륨을 정해놓은 경로에 연결해준다.

경로 : /var/lib/postgresql/data

$ docker run -d -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=12341234 -v pgdata:/var/lib/postgresql/data postgres

 

이제 postgres에 접속해보겠다.

$ docker exec -it postgres /bin/bash

~/# psql -U postgres

 

접속에 성공했으면 유저를 생성해준다.

생성된 유저를 확인한다.

~/# CREATE USER ['유저명'] PASSWORD '12341234' SUPERUSER;

~/# \du

 

유저생성에 성공했으면 데이터베이스를 생성해준다.

생성된 데이터베이스를 확인한다.

~/# CREATE DATABASE ['데이터베이스명'] OWNER ['유저명'];

 

반응형
Comments