Docker - MongoDB 설정

안녕하세요, 미래의 Docker와 MongoDB 마에스트로 여러분! 컨테이너화와 데이터베이스의 세계로의 흥미로운 여정에서 여러분의 가이드로서 기쁜 마음입니다. 컴퓨터 과학을 몇 년 동안 가르쳐온 사람으로서, 이 기술을 마스터하면 여러분에게 새로운 가능성의 세계를 열어줄 것이라고 말씀드릴 수 있습니다. 그麼, 시작해보겠습니다!

Docker - Setting MongoDB

기본 이해

Docker는 무엇인가요?

새로운 집으로 이사할 때, 모든 것을 별도로 포장하는 대신, 전체 방을 들고 다른 곳에 내려놓을 수 있다고 상상해보세요. Docker는 소프트웨어 애플리케이션에 대해 이와 같은 일을 합니다. 애플리케이션을 실행시키기 위해 필요한 모든 것 - 코드, 런타임, 시스템 도구, 라이브러리 - 을 깔끔한 컨테이너에 담아줍니다.

MongoDB는 무엇인가요?

거대하고 유연한 파일柜을 상상해보세요. 이 파일柜은 다양한 모양과 크기의 정보를 저장할 수 있습니다. MongoDB는 이와 같은 데이터베이스입니다. 전통적인 데이터베이스와 달리, 데이터를 고정된 테이블로 강제하지 않습니다. 대신, 데이터를 자유형태로 유지할 수 있습니다. 마치 종이에 메모를 적는 것과 같은 방식입니다.

Docker 설정

우리가 MongoDB 어드벤처를 시작하기 전에, Docker 배가 준비되었는지 확인해야 합니다.

Docker 설치

  1. 공식 Docker 웹사이트(docker.com)로 이동합니다.
  2. 운영 체제에 맞는 버전을 다운로드합니다.
  3. 설치 마법사를 따라 설치합니다. 쉽기 그 자체입니다!

Docker 설치 확인

설치가 완료되면, 모든 것이 제대로 되어 있는지 확인해봅시다:

docker --version

Docker version 20.10.14, build a224086와 같은 메시지가 보이면, 모든 것이 잘된 것입니다!

MongoDB 이미지 가져오기

이제 Docker 엔진이 잘 돌아가고 있으므로, MongoDB 이미지를 가져오겠습니다.

docker pull mongo

이 명령은 Docker 슈퍼마켓에 가서事前 포장된 MongoDB를 꺼내는 것과 같습니다. 쉬워요!

컨테이너에서 MongoDB 실행

기본 실행 명령

이제 MongoDB 컨테이너에 생명을 불어넣어보겠습니다:

docker run --name some-mongo -d mongo

이를 설명해보겠습니다:

  • docker run: Docker가 새로운 컨테이너를 생성하고 시작하도록 합니다.
  • --name some-mongo: 우리의 컨테이너에 친절한 이름을 지정합니다.
  • -d: 컨테이너를 배경 모드로 실행합니다.
  • mongo: 사용할 이미지입니다.

고급 실행 명령

여러분의 모험심을 자극하기 위해, 몇 가지 추가 옵션을 포함한 더 복잡한 명령을 소개합니다:

docker run --name my-mongo -p 27017:27017 -v /path/on/host:/data/db -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=password -d mongo

이를 해독해보겠습니다:

  • -p 27017:27017: 컨테이너의 포트 27017를 호스트의 포트 27017로 매핑합니다.
  • -v /path/on/host:/data/db: 볼륨을 생성하여 호스트의 디렉토리를 컨테이너의 데이터 디렉토리와 연결합니다.
  • -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=password: 환경 변수를 설정하여 관리자 사용자를 만듭니다.

MongoDB에 연결

Mongo Shell 사용

이제 MongoDB 컨테이너가 실행 중이므로, 인사를 건네보겠습니다:

docker exec -it my-mongo mongo

이 명령은 컨테이너의 문을 두드리고, 대화를 나누고 싶어하는 것과 같습니다. -it 플래그는 대화를 상호작용적으로 만듭니다.

MongoDB 클라이언트 사용

시각적인 인터페이스를 선호하는 사람들을 위해, MongoDB 클라이언트를 사용할 수 있습니다. Robo 3T나 MongoDB Compass와 같은 도구를 사용하여 localhost:27017에 연결하면 됩니다. 그런 다음, 여러분은 시작할 수 있습니다!

기본 MongoDB 연산

이제 연결이 되었으므로, 조금 놀아보겠습니다.

데이터베이스 생성

use myAwesomeDB

이는 MongoDB에게 "이 새로운 파일柜에서 일하겠다"고 말하는 것과 같습니다.

데이터 삽입

db.users.insertOne({name: "John Doe", age: 30, email: "[email protected]"})

이는 새로운 파일을 파일柜에 넣는 것과 같습니다. 우리는 users 콜렉션에 사용자를 추가하고 있습니다.

데이터 질의

db.users.find({name: "John Doe"})

이는 MongoDB에게 "John Doe에 대한 모든 파일을 찾아달라"고 요청하는 것과 같습니다.

MongoDB 컨테이너 관리

컨테이너 중지

docker stop my-mongo

이는 MongoDB에게 "지금은 쉬자"고 말하는 것과 같습니다.

컨테이너 시작

docker start my-mongo

그리고 일을 다시 시작할 때, 이 명령은 "쉬는 시간이 끝났다. 다시 일을 시작해야 한다"고 말하는 것과 같습니다.

컨테이너 제거

docker rm my-mongo

이제 특정 MongoDB 설정이 더 이상 필요하지 않다면, 이 명령은 "고맙지만, 이제는 작별을 고할 때가 되었다"고 말하는 것과 같습니다.

MongoDB 메서드 표

다음은 몇 가지 일반적인 MongoDB 메서드입니다:

메서드 설명
insertOne() 콜렉션에 단일 문서를 삽입합니다
insertMany() 콜렉션에 여러 문서를 삽입합니다
find() 콜렉션에서 문서를 질의합니다
updateOne() 콜렉션에서 단일 문서를 업데이트합니다
updateMany() 콜렉션에서 여러 문서를 업데이트합니다
deleteOne() 콜렉션에서 단일 문서를 삭제합니다
deleteMany() 콜렉션에서 여러 문서를 삭제합니다
aggregate() 콜렉션에서 집계 연산을 수행합니다

결론

이제 여러분은 Docker를 사용하여 MongoDB를 설정하는 기본 단계를 거쳤습니다. 이미지를 가져오고, 기본 연산을 수행하는 것까지입니다. 기억하시기 바랍니다, 새로운 기술을 배우는 것은 연습과 함께 완성됩니다. 두려워하지 마시고, 실험하고, 과정에서 배우세요.

이 글을 마치면서, 한 학생이 Docker와 MongoDB를 시작할 때 "해양에서迷路했다"고 느꼈던 이야기를 떠올립니다. 과정이 끝나면 그는 "자신의 배의 선장"이라고 느꼈습니다. 이 가이드가 여러분이 이 흥미로운 기술을 탐험하는 데 도움이 되기를 바랍니다.

계속 항해하고, 배우고, 가장 중요한 것은 즐기세요! 컨테이너화된 데이터베이스의 세계는 여러분의 것입니다. 이제 Docker와 MongoDB를 마스터하듯이 나아가세요!

Credits: Image by storyset