IT ⁄ Computer/Mac

MacOS ) m1 맥북 docker 설치하기 + 가상환경에 postgreSQL 띄워 보기

Shane Park 2021. 8. 9. 23:13
반응형

Intro

Windows에 Docker를 설치 해 보았으니, Mac에서도 Docker를 설치 해 보겠습니다.

예전에는 MySQL건 postgreSQL이건 DB를 설치 할 때 마다 로컬에 직접 설치를 했었는데요, 그러면 필요할때만 켜고 끄려고 해도 DB를 켜고 끄는 명령어를 입력 해 주어야 하고 이게 확인하기 전까지는 돌아가고 있는지 아닌지도 눈에 보이지가 않아 불편했는데요, 한번 Docker를 사용 해 보니 그 매력이 굉장해서 왠만한 건 이제 Docker로 돌리게 될 것 같습니다.

특히 Docker의 장점은 쉬운 설치 및 개발 환경 그대로 배포가 가능하다는 점 등이 있습니다. 특히 Docker Compose를 이용하면 yaml 포맷으로 다수의 container를 묶어서 실행 및 관리 할 수도 있으며 volume을 활용해 손쉽게 데이터베이스를 통째로 백업 하고 불러올 수도 있습니다.

설치

brew search 를 해보았습니다.

img

이 경우에는 Formulae 와 Casks가 모두 있기 때문에 그냥 brew install docker를 한다면 Formulae로 설치 됩니다.

Formulae는 CLI 환경, Casks는 GUI 환경 입니다. 사용하기 편하신 걸 설치하면 좋은데 초보자는 아무래도 GUI 환경에서가 하기 좋습니다.

아래의 명령어를 입력해 설치합니다.

brew install --cask docker

img

가상 환경을 세팅하다 보니 시간이 꽤 걸립니다.

img

설치가 완료되었습니다.!

이제 docker 명령어를 입력 하면 Option들에 대한 설명이 나옵니다.

img

Alfred 로 검색해도 어플리케이션이 설치되어 있는 것을 확인 할 수 있습니다.

img

또한 우측 상단에는 Docker 가 실행 되어 있습니다.

img

Postgres 띄우기

Docker를 실행 해 보면 Container가 아직 한개도 없습니다.

img

Terminal에 Windows에 했던 것과 정확히 똑같은 명령어를 입력해 postgreSQL 컨테이너를 띄워 보도록 하겠습니다.

docker run --name PostgreSQL -e POSTGRES_USER=shane -e POSTGRES_PASSWORD=java -d -p 5432:5432 postgres

POSTGRE_USER= 에 있는 shane 은 본인이 원하는 아이디로, PASSWORD= 옆에 있는 비밀번호도 java가 아닌 원하시는 비밀번호로 변경하시면 됩니다.

--name 은 이름 설정 입니다. 옆에 postgreSQL 이라고 입력한건 docker에 등록 할 이름인데, myPostgres 등 원하시는 이름으로 하시면 됩니다.

-d 는 백그라운드 모드 (detached mode)

-p 는 호스트와 컨테이너의 포트 연결

-e 는 컨테이너에서 사용할 환경 변수를 설정하는 명령어 입니다.

img

금방 컨테이너가 등록 되고 실행 됩니다. docker GUI로 Container를 확인해보면 Running 중인 것을 확인 할 수 있습니다.

img

이제 이렇게 서버가 켜졌다면 접속을 확인 해 보겠습니다.

저는 DBeaver를 사용 해 보도록 하겠습니다.

DB 종류는 PosetgreSQL로 고르고

img

방금 docker를 띄울때 지정한 이이디와 비밀번호를 입력 합니다. 그래서 Test Connection을 쏴 보면

img

Docker로 띄운 PostgreSQL에 잘 접속 하는 것이 확인 됩니다!

간단하게 게시판 만들떄 썼던 테이블도 넣어 봅니다.

CREATE TABLE public.board (
    boardno serial NOT NULL,
    title varchar NULL,
    "content" varchar NULL,
    writer varchar NULL,
    CONSTRAINT board_pk PRIMARY KEY (boardno)
);
INSERT INTO public.board (title,"content",writer) VALUES
     ('2번째 글 제목','2번째 내용','2번작성자'),
     ('새글','새글 써봅니다.','새글맨'),
     ('글 수정','수정도 잘됩니다.','수정맨'),
     ('1번째 글 제목','1번째 내용,내용','1번작성자');

그러고 쿼리를 조회해 봅니다

select * from board;

img

아주 좋습니다! 그대로 이전에 Windows 의 docker 환경에서 postgres 띄워 만들서 준비했던 스프링 부트로 만든 게시판도 실행 해 보았습니다.

img

문제 없이 서버가 실행 되고 해당 url로 접속도 잘 되는 것을 확인했습니다 ! docker 를 잘 사용 한다면 정말 배포에 들이는 시간과 비용을 줄여 생산성이 향상 되겠다는 생각이 듭니다.

반응형