Database

[Mac OS] Docker + PostgreSQL 구성하기

HANBEEN 2024. 3. 19. 01:22
반응형

ERP운영 업무를 하며 데이터베이스를 많이 접하다 보니 흥미가 생겼고 데이터베이스에 대해 더 공부를 하고 싶었습니다 

SQL은 회사에서 많이 사용하여 그 외 데이터베이스 구축부터 운영, 백업, 모니터링도 해보고 싶습니다. 

그러기 위해서 먼저 PC에 데이터베이스부터 구축하려고 합니다

 

Docker ? 

 

맥북에 PostgreSQL을 설치하는 방법을 검색하고 Udemy에서 보고 싶은 강좌를 찾아보다 보니 자주 보이는 단어가 Docker였습니다.

 

Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다. Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징 하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있습니다. Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행된다고 합니다. 

 

즉, Docker의 컨테이너들은 독립적인 특징을 갖고 있어 한 개의 서버에 많은 컨테이너들을 가질 수 있고 각 컨테이너마다 구현하고 싶은 환경을 만들 수 있는 확장성 좋은 소프트웨어 플랫폼입니다. 또한 쉽고 빠르게 컨테이너를 생성하고 제거하는 배포 및 개발환경을 구성할 수 있는 장점이 있습니다.
다만, 데이터베이스의 영속성(데이터를 안전하게 보관)과 같은 문제와 가상환경이라는 단점들도 있는 것으로 보입니다. 


저는 실제로 운영하기보단, 혼자 공부하고 연습을 위해 데이터베이스를 구축하는 것이고 Docker란 소프트웨어를 사용해 보고 겸사겸사 이용해 보도록 하겠습니다. 

Docker 설치하기

이전에 homebrew 설치를 했었던 기억이 있어 확인해 보니 잘 설치되어 있는 것으로 확인됩니다 

brew help

 

정상적으로 설치가 되어 있다면 아래의 명령어를 입력해 보자

brew install --cask docker

 

* cask는 GUI 환경입니다 

Docker was successfully installed!

Docker가 정상적으로 설치되었다!  
응용프로그램에서 아이콘이 생성된 것을 볼 수 있으며 우측 상단에도 고래모양이 표시된 것을 볼 수 있다 

PostgreSQL  띄우기

현재는 아래와 같이 컨테이너에 아무것도 없지만 PostgreSQL 컨테이너를 띄어보도록 하겠습니다 

 

Docker images 명령어를 검색해보면 아직 아무 이미지가 없는 것을 볼 수 있다. 

% docker images

 

아래와 같이 명령어를 입력해 Postgres 이미지를 설치한다

% Docker pull postgres


* Docker pull postgres 

다시 Docker images 실행 시 Postgres가 추가된 것을 볼 수 있다.

 

이제 받아온 이미지를 컨테이너로 만들면 됩니다. 

먼저 Docker Volume을 생성합니다. 

docker volume create [생성할 볼륨 이름]

 

Docker Volume 이란? 

컨테이너를 삭제하게 되면 작업했던 데이터가 모두 삭제되어 버리는데  컨테이너는 삭제되어도 데이터는 유지하고 싶은 경우 사용하는 것이 바로 볼륨(volume)입니다. 볼륨을 걸어준 데이터의 경우 컨테이너 내부에서 수정되는 즉시 볼륨이 걸려있는 외부의 데이터도 같이 수정되게 됩니다.

 

이미지 컨테이너 생성 

docker run --name postgres_c1 -v pgvolume:/var/lib/docker/volumes/pgvolume/_data -e POSTGRES_PASSWORD=test -d postgres

 

--name : 컨테이너 명

-v : Volume 경로 

-e : 환경변수 설정 옵션으로 비밀번호 설정 

-d : 컨테이너가 detached 모드로 실행되어 백그라운드에서 동작한다

마지막에는 Image 이름을 넣는다. 

 

* Volume 경로의 경우 아래 명령어로 확인 가능하다 

docker volume inspect (volume 명)

 

컨테이너가 아래와 같이 정상적으로 생성된 것을 확인

docker ps -a

컨테이너 시작 / 정지 / 재시작

컨테이너 중지
$ docker stop some-postgres

컨테이너 시작
$ docker start some-postgres

컨테이너 재시작
$ docker restart some-postgres

 

 

오늘은 Mac OS 환경에서 Docker를 이용하여 Postgres 컨테이너를 띄우는 것 까지 진행하였다.

다음에는 Postgres 컨테이너 내에서 Database를 생성하고 테이블 생성까지 진행을 해봐야겠다!! 

반응형