Docker - MongoDB 설정
안녕하세요, 미래의 Docker와 MongoDB 마에스트로 여러분! 컨테이너화와 데이터베이스의 세계로의 흥미로운 여정에서 여러분의 가이드로서 기쁜 마음입니다. 컴퓨터 과학을 몇 년 동안 가르쳐온 사람으로서, 이 기술을 마스터하면 여러분에게 새로운 가능성의 세계를 열어줄 것이라고 말씀드릴 수 있습니다. 그麼, 시작해보겠습니다!
기본 이해
Docker는 무엇인가요?
새로운 집으로 이사할 때, 모든 것을 별도로 포장하는 대신, 전체 방을 들고 다른 곳에 내려놓을 수 있다고 상상해보세요. Docker는 소프트웨어 애플리케이션에 대해 이와 같은 일을 합니다. 애플리케이션을 실행시키기 위해 필요한 모든 것 - 코드, 런타임, 시스템 도구, 라이브러리 - 을 깔끔한 컨테이너에 담아줍니다.
MongoDB는 무엇인가요?
거대하고 유연한 파일柜을 상상해보세요. 이 파일柜은 다양한 모양과 크기의 정보를 저장할 수 있습니다. MongoDB는 이와 같은 데이터베이스입니다. 전통적인 데이터베이스와 달리, 데이터를 고정된 테이블로 강제하지 않습니다. 대신, 데이터를 자유형태로 유지할 수 있습니다. 마치 종이에 메모를 적는 것과 같은 방식입니다.
Docker 설정
우리가 MongoDB 어드벤처를 시작하기 전에, Docker 배가 준비되었는지 확인해야 합니다.
Docker 설치
- 공식 Docker 웹사이트(docker.com)로 이동합니다.
- 운영 체제에 맞는 버전을 다운로드합니다.
- 설치 마법사를 따라 설치합니다. 쉽기 그 자체입니다!
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