본문 바로가기
AWS, Infra/docker

[Docker] 도커 설치, Postgresql 추가

by RoJae 2020. 11. 29.

 

     로재의 개발 일기      

Docker 도커

'도커를 언젠가는 사용하겠지?' 라는 생각을 하고 있었다..


하지만 최근 

강의를 듣거나 여러 데이터베이스 및 웹 서버를 사용해 

학습, 토이 프로젝트를 

진행하다보니, 

도커를 필히 사용해야 시간을 절약할 수 있겠더라..


그래서 설치하고 직접 사용하고 있는데

매우 간편하고 좋네요.


지금까지 왜 사용하지 않았을까? 라는 후회



 도커를 설치합니다.

간단하게 인터넷에 접속합니다.

저의 경우는 리눅스 혹은 맥의 경우 였습니다.


링크주소

>> https://hub.docker.com/_/docker <<




설치를 해주고

'docker -v' 명령어로 버전을 조회해봅니다.

1
2
rojae@rojaeui-MacBookPro % docker -v
Docker version 19.03.13, build 4484c46d9d
cs

정상적으로 버전이 나왔다면 설치가 된겁니다.


 Postgresql를 설치합시다.

다음 명령어로 도커에 컨테이너를 만들어줍니다.

1
2
3
4
# docker에 postgres 컨테이너를 생성, -e 환경, -d 데몬
docker run -5432:5432 -e POSTGRES_PASSWORD=rojae8918 -
POSTGRES_USER=rojae -e POSTGRES_DB=springdata 
--name postgres_boot -d postgres
cs


이제 'docker ps' 명령어로 

정상적으로 올라갔는지 봅시다.

1
2
3
rojae@rojaeui-MacBookPro % docker ps
CONTAINER ID        IMAGE               COMMAND                  ...
9565983bd1b1        postgres            "docker-entrypoint.s…"   ...
cs


정상적으로 올라간 것을 알 수 있습니다.

하지만 만약에 없다면


'docker ps -a' 명령으로 전체 조회를 해봅니다.

1
2
3
rojae@rojaeui-MacBookPro % docker ps -a
CONTAINER ID        IMAGE               COMMAND                  ...
9565983bd1b1        postgres            "docker-entrypoint.s…"   ...
cs


이때 !!

만약에 'docker ps'는 없지만 'docker ps -a'에는 존재한다면

강제로 컨테이너를 올려줄 필요가 있으며,

그래도 안된다면

높은 확률로 이미 사용중인 포트일 수 있습니다.

(저의 경우는 이미 postgresql이 깔려 있었어요)



이제 컨테이너를 실행하고

1
2
# 컨테이너 실행, -i interactive 백그라운드, -t 타켓
% docker exec --t postgres_boot bash
cs


계정을 관리자로 바꾸고

데이터베이스에 접근합니다.

(이후 단순 postgresql 쓰는 것 처럼 하면 됩니다)

1
2
3
4
5
6
# 계정 스위칭
su - postgres
 
# 데이터베이스 접근, 위가 안되면 아래로 해결
psql springdata
-> or psql --username rojae --dbname springdata
cs


데이터베이스에 접근하여

자유롭게 사용이 가능합니다.

1
2
3
4
5
6
7
springdata=# \dt  
 
        List of relations
 Schema |  Name   | Type  | Owner 
--------+---------+-------+-------
 public | account | table | rojae
(1 row)
cs




 Postgresql, docker 명령어 정리

마지막으로 명령어를 정리하면서

글을 마치겠습니다.

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
# 실행중인 컨테이너 조회
docker ps
 
# 컨테이너 전체 조회 (정지상태까지)
docker ps -a
 
# 도커 이미지 조회
docker images
 
# 도커 이미지 제거
docker rmi {iamge_id}
 
# 컨테이너 시작
docker start {container_id}
 
# 컨테이너 정지
docker stop {container_id}
 
# 컨테이너 재시작
docker restart {container_id}
 
# 컨테이너 삭제
docker rm {container_id}
 
# 테이블 조회
\dt
 
# 데이터베이스 조회
\list
cs





마무리

도커는 필수가 되어지는 것 같다.



※ 본 글은 개인 포트폴리오 혹은 공부용으로 사용하기 때문에, 무단 복사 유포는 금지하지만, 개인 공부 용도로는 얼마든지 사용하셔도 좋습니다



댓글