안녕하세요, 다람쥐입니다.
오늘 소개할 도커 이미지는 몽고디비(MongoDB) 입니다.
몽고디비는 NoSQL 데이터베이스를 처음 공부할 때 많이 접하는 데이터베이스입니다.
오픈 소스에다 JSON 형태로 데이터를 받을 수 있으니 사용하기 편리한 데이터베이스 중 하나입니다.
1. 도커 프로그램 설치하기
아래 MySQL Docker 이미지를 설치할 때 소개드렸습니다. 아래 페이지를 참고해주시면 감사하겠습니다.
링크 : https://itchipmunk.tistory.com/450
2. MongoDB Docker 도커 이미지 설치하기
docker pull 명령어로 MongoDB 최신 버전의 이미지를 내려받을 수 있습니다.
또는 'mongo:latest' 으로 최신 버전을 직접 명시할 수 있습니다.
$ docker pull mongo
Using default tag: latest
latest: Pulling from library/mongo
08c01a0ec47e: Already exists
ceb608a7cda7: Pull complete
a160d3e3934a: Pull complete
544b72923120: Pull complete
812461eda79e: Pull complete
3e1ac5db1dae: Pull complete
801c92a93fab: Pull complete
34e6068e2f4c: Pull complete
2513dc6d2ec7: Pull complete
d1ac55ebeb6f: Pull complete
Digest: sha256:c7f5b78eead63e672176d4a6e0932f8649c8f727dec5acef6b9ed7c9bdc3dae5
Status: Downloaded newer image for mongo:latest
docker.io/library/mongo:latest
특정 버전의 MongoDB 도커 이미지는 MongoDB 도커 허브 페이지 Tags 메뉴에서 이미지 목록을 확인할 수 있습니다.
윈도우의 경우 2~3GB 사이이므로 이미지를 가져오기 전에 용량을 먼저 확인해주세요.
리눅스의 경우 200~300MB 정도로 윈도우에 비해 가벼운 용량입니다.
만약 애플 실리콘 M1 칩셋을 사용 중이라 명령어 실행할 때 오류가 난다면
로제타로 터미널을 실행시켜주시거나
'--platform linux/amd64' 옵션을 추가로 넣어 실행해줍니다.
3. 내려 받은 MongoDB Docker 도커 이미지 확인
docker images 명령어로 내려 받은 MongoDB Docker 도커 이미지를 확인할 수 있습니다.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mongo <none> 29d9c9b800fa 13 months ago 493MB
또는 Docker for Desktop 프로그램에서 Images 탭에서도 확인할 수 있습니다.
4. 내려 받은 MongoDB 이미지로 도커 컨테이너 생성
MongoDB 도커 이미지를 내려받았으면 바로 MongoDB 도커 컨테이너를 만들어 봅시다.
# 기본값으로 생성
$ docker run --name some-mongo -v ~/data:/data/db -d -p 27017:27017 mongo
# 루트 계정 설정
$ docker network create some-network
$ docker run -d --network some-network --name some-mongo -v ~/data:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=mongoadmin \
-e MONGO_INITDB_ROOT_PASSWORD=secret \
-p 27017:27017 \
mongo
로컬 컴퓨터의 ~/data 디렉터리에 데이터를 저장하기 위해 -v 옵션으로 로컬 컴퓨터의 디렉터리인 ~/data 디렉터리를
컨테이너가 가지는 /data/db 디렉터리에 마운트 했습니다.
MongoDB 도커 컨테이너 만들 시에 들어갈 환경 변수 목록 설명은 다음과 같습니다.
- MONGO_INITDB_ROOT_USERNAME : 루트 계정으로 만들 계정의 이름입니다.
- MONGO_INITDB_ROOT_PASSWORD : 루트 계정으로 만들 계정의 비밀번호입니다.
- MONGO_INITDB_DATABASE : /docker-entrypoint-initdb.d/*.js 스크립트에서 생성되는 데이터베이스 명을 지정합니다. 몽고디비는 처음 저장할 때 데이터베이스가 신규 생성되는 특징이 있습니다.
몽고디비 컨테이너를 처음 시작하면 특별한 작업이 실행됩니다.
바로 /docker-entrypoint-initdb.d 경로에 있는 .sh 파일 또는 .js 파일을 알파벳 순으로 실행한다는 점인데요.
.js 파일은 몽고디비가 실행하고
앞서 환경변수에서 설명한 MONGODB_INITDB_DATABASE 으로 지정한 데이터베이스에서 실행됩니다.
만약 환경변수가 없다면 test 이름으로 실행됩니다.
또는 .js 파일을 직접 수정하여 변경할 수도 있습니다.
마찬가지로 만약 애플 실리콘 M1 칩셋을 사용 중이라 명령어 실행할 때 오류가 난다면
로제타로 터미널을 실행시켜주시거나
'--platform linux/amd64' 옵션을 추가로 넣어 실행해줍니다.
5. 실행된 MongoDB 도커 컨테이너 확인
docker ps 명령어로 MongoDB 도커 컨테이너를 확인할 수 있습니다.
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9d0f33c8d8b2 mongo "docker-entrypoint.s…" 28 seconds ago Up 25 seconds 0.0.0.0:27017->27017/tcp
6. MongoDB 도커 컨테이너 시작 & 정지 & 재시작
아래 명령어로 MongoDB 도커 컨테이너를 시작하고 정지하고 재시작할 수 있습니다.
# MongoDB Docker 컨테이너 중지
$ docker stop some-mongo
# MongoDB Docker 컨테이너 시작
$ docker start some-mongo
# MongoDB Docker 컨테이너 재시작
$ docker restart some-mongo
7. MongoDB 도커 컨테이너에 접속
아래 명령어로 MongoDB 도커 컨테이너에 접속할 수 있습니다.
$ docker exec -it some-mongo bash
# mongo
8. docker-compose.yml 에 MongoDB 에 추가
docker.compose.yml 파일에 MongoDB 도커 이미지를 담으려면 아래와 같습니다.
# Use root/example as user/password credentials
version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
이후 docker-compose up -d 명령어와 docker-compose down 명령어로 두 도커 이미지를 한 번에 올리거나 한 번에 내릴 수 있습니다.
다른 시리즈 글 보러 가기
- #4. MariaDB Docker 도커 이미지 설치하기 - 아직도 직접 설치하시나요? 시리즈
- #3. PostgreSQL Docker 도커 이미지 설치하기 - 아직도 직접 설치하시나요? 시리즈
- #2. Redis Docker 도커 이미지 설치하기
- #1. MySQL Docker 도커 이미지 설치하기
'< DevOps > > Docker' 카테고리의 다른 글
#4. MariaDB Docker 도커 이미지 설치하기 - 아직도 직접 설치하시나요? 시리즈 (0) | 2022.02.08 |
---|---|
#3. PostgreSQL Docker 도커 이미지 설치하기 - 아직도 직접 설치하시나요? 시리즈 (0) | 2022.02.04 |
#2. Redis Docker 도커 이미지 설치하기 - 아직도 직접 설치하시나요? 시리즈 (1) | 2022.01.25 |
#1. MySQL Docker 도커 이미지 설치하기 - 아직도 직접 설치하시나요? 시리즈 (0) | 2022.01.18 |
댓글