ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 웹 서버를 위한 MongoDB 컨테이너로 설치하기
    IT 생활/Mac Life 2020. 7. 5. 01:40

    안녕하세요 류똥구입니다.

    오랜만에 홈서버와 관련해서 포스팅을 하네요.

    제 맥미니로 간단한 웹서비스를 만들면서 웹 개발 공부를 하려고 말씀드렸었는데요.

    그래서 이번 포스팅에서는 웹 서비스에서 사용할 데이터베이스로 MongoDB를 설치하는 방법에 대해서 다뤄볼까 합니다.

     

    맥미니 대신에 리눅스가 설치된 노트북을 메인으로 사용하고 있다보니 환경을 동일하게 하기 위한 목적으로 docker를 맥미니와 노트북에 설치해 놓았습니다.

     

    맥에서 docker를 설치하는 방법은 이전 포스팅을 참고하시면 됩니다.

    우분투 계열에서는 apt-get install docker 명령으로 설치하면 됩니다.

     

    그럼 docker로 MongoDB를 설치하도록 하겠습니다.


    Docker 설치 확인

    호옥시나 해서 터미널을 열어서 docker가 설치 되어 있는지 확인 해봅니다.

    $ docker version

    docker version

    현재 제 맥미니에는 docker 19.03.8 버전이 설치 되어 있네요.

    docker는 운영체제와 상관없이 동일한 명령어를 지원하고 있으므로 동일하게 진행하시면 됩니다.

     

     

    MongoDB 다운로드

    docker hub에 mongoDB의 공식 이미지가 등록되어 있습니다.

    https://hub.docker.com/_/mongo

     

    mongo - Docker Hub

    Supported tags and respective Dockerfile links (See "What's the difference between 'Shared' and 'Simple' tags?" in the FAQ.) Simple Tags 3.4.23-xenial, 3.4-xenial 3.4.23-windowsservercore-ltsc2016, 3.4-windowsservercore-ltsc2016 3.6.16-xenial, 3.6-xenial,

    hub.docker.com

    docker를 설치하면 docker hub를 기본 repository로 사용하기 때문에 별도의 설정이 없이 docker hub에서 바로 컨테이너 이미지를 받을 수 있습니다. 

    $ docker pull mongo

    MongoDB 이미지 다운로드
    MongoDB 이미지 확인

    docker images 명령으로 mongoDB 컨테이너 이미지가 추가된 것을 확인 할 수 있습니다.

     

     

    MongoDB 컨테이너 실행

    MongoDB에서는 27017 포트를 client 연결을 위해서 사용하고 있습니다. 해당 포트를 호스트에 노출을 시켜줘서 컨테이너를 실행시켜줍니다.

    $ docker run --name mongo -p 27017:27017 -d mongo

    docker run 의 옵션은 다음과 같은 의미를 가집니다.

       --name : 컨테이너의 이름 지정

       -p : container port 포워딩 설정. <host port>:<container port>로 호스트와 컨테이너 사이에 포트를 매핑

       -d : 백그라운드 실행

       mongo : 실행시킬 컨테이너 이미지 이름

     

    docker ps 명령으로 보면 MongoDB 컨테이너가 백그라운드에서 동작하는 것을 확인할 수 있습니다.

     

    팁: --restart=always 옵션을 이용하여 다음과 같이 컨테이너를 실행하면 컨테이너가 종료되거나 시스템이 재시작되어도 해당 컨테이너를 자동으로 다시 실행시켜 줍니다. 

    $ docker run --name mongo -p 27017:27017 --restart=always -d mongo

     

    MongoDB 동작 확인

    앞서서 실행시킨 컨테이너 내에서는 MongoDB 서버가 동작하고 있게 됩니다.

    MongoDB 클라이언트를 이용하여 MongoDB 서버에 접속하여 봅시다.

    $ docker exec -it mongo /bin/bash

    docker의 exec 명령은 컨테이너 내에 명령을 수행할 수 있게 해줍니다. 

       -it : -i 옵션과 -t  옵셥을 동시에 사용. -i는 컨테이너에 표준입출력을 허용하는 것이고, -t는 pseudo-TTY를 적용

             즉, 컨테이너에 터미널을 연결해서 사용할 수 있게 하는 것입니다.

       mongo : 실행 중인 컨테이너 이름

      /bin/bash : 컨테이너 내에서 수행할 명령으로 bash 쉘을 실행

     

    이 명령을 이용하면 리눅스 터미널을 사용하는 것처럼 컨테이너의 터미널을 연결해서 사용 할 수 있게 됩니다.

    컨테이너에 접속이 되면 프롬프트가 변경이 되게 됩니다.

    MongoDB를 설치하면 기본적으로 MongoDB 클라이언트가 같이 설치가 됩니다.

    mongo 명령으로 MongoDB 서버에 접속이 가능합니다. 

     

    MongoDB 접속

    MongoDB의 접속 배너 메시지가 출력되고 MongoDB 프롬프트가 나타나게 됩니다.

     


    이상으로 docker 컨테이너로 MongoDB 설치하는 법에 대해서 알아 보았습니다.

    다음 포스팅에서는 Golang에서 MongoDB에 연결하는 방법에 대해서 다뤄보도록 하겠습니다.

    댓글

Designed by Tistory.