개발공부/Tools

Docker 설치[+redis와 postgresql]

스푼앤포크 2019. 11. 27. 11:41

Docker란?

리눅스의 응용프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트

 

도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다. 이는 실행 중인 환경에 관계 없이 언제나 동일하게 실행될 것을 보증한다.

 

1. Docker를 설치하기 전, PC의 상태가 Docker를 설치 할 수 있는지 확인해보자

작업관리자 탭 - 성능 - 가상화 확인

가상화 항목에서 사용가능이 표기된다면, Docker의 설치가 가능하다

2. Docker를 설치해보자

https://github.com/docker/toolbox/releases

 

docker/toolbox

The Docker Toolbox. Contribute to docker/toolbox development by creating an account on GitHub.

github.com

2-1. latest releases에서 DockerToolbox-19.03.1.exe 파일로 설치를 진행하였다.

2-2. 설치 진행시 Next 버튼을 누르고, 아래 화면에서만 Git for windows를 해제한 후 진행한다.

 

2.3 설치가 완료되면 Docker quickstart Terminal을 클릭한다.

3. 실행 후 Docker의 상징인 고래를 만날 수 있다. 노란색 박스에는 자신의 IP 주소가 표기된다. 

3-1. docker -ps 를 입력해보자.

현재 Docker는 어떤 설정도 되어있지 않은 상태이다. 이제 설정을 하나씩 해보자.

3-2. docker run -d --restart=always --name local_redis -p 6379:6379 redis

※ run -d --restart=always : 호스트 시스템이 boot를 진행할 때 자동으로 도커의 컨테이너가 시작되기 위함이다.

--name : 컨테이너의 이름을 설정한다. 

-p : 포트번호를 설정한다 (위에서는 redis가 기본적으로 사용하는 포트번호 6379를 사용한다)

redis란 무엇인가?

Remote Dictionary Server의 약어로 메모리 기반의 Key-value Store!!

"키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리시스템(DBMS)

 

redis에 대해 image가 존재하지 않기 때문에 자동적으로 설치를 시작한다.

3.3 설치가 완료된 후 다시한번 docker의 상태를 확인해본다

※ clear 입력

※ docker ps 후에 아까와 달리 추가된 사항들을 볼 수 있을 것이다.

 

4. redis를 실행시켜보자

이 때, CONTAINER_ID를 써야하는데, 각 PC에 부여된 CONTAINER_ID를 쓰면된다.

 docker exec -it CONTAINER_ID /bin/sh

이를 적용한 후 , $의 표기가  #으로 바뀐것을 볼 수 있다.

redis의 이미지가 생성 완료되었다. (exit을 함으로써, 리눅스에서 윈도우 환경으로 다시 빠져나오자)

 

5. Postgresql을 설정해주자

입력할 때 주의하기 => 잘못 입력하면, 다시 깔아야 될 수도 있음

POSTGRES_USER = localdb(자신이 지정)

POSTGRES_PASSWORD=(자신이 지정)

POSTGRES_DB=localdb(자신이 지정)

-p : 포트번호 5432:5432 postgres 이름으로 지정 (postgresql이 디폴트로 사용하는 포트 번호는 5432이다)

6. 다시 한 번 Docker의 상태를 확인해보자

※ docker ps를 통해, postgresql과 redis를 사용할 준비가 완료되었음을 알 수 있다.

 

 

오늘 한 것은 Spring에서 사용할 DB연동을 마친 것이다.

앞으로 Spring을 이용해서 redis와 postgres를 묶을 것이다. 





|본 포스팅은 쿠팡 파트너스의 일환으로 소정의 수수료를 제공받을 수 있음을 알립니다 |