반응형
Mongodb를 Docker Container에 띄워보자.
먼저 Docker Image를 다운로드 하자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | jckang@jckang:~$ docker pull mongo Using default tag: latest latest: Pulling from library/mongo b849b56b69e7: Pull complete 42986ef25bcd: Pull complete d927c1b717ec: Pull complete 15b86ea20233: Pull complete 95dc958d65c6: Pull complete aec60d69dd50: Pull complete bf92a6681913: Pull complete 8911fe7d4b35: Pull complete 8ce44114b060: Pull complete 1a944a194d13: Pull complete 5519cf0ef45d: Pull complete 6c688677ac8e: Pull complete 2f147ac236bb: Pull complete Digest: sha256:083e534e9dd3a61cabb31546e9eabf507b7ef6b061e511d16f2eb22664db9e72 Status: Downloaded newer image for mongo:latest jckang@jckang:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE mongo latest 7177e01e8c01 4 hours ago 393MB | cs |
docker pull 명령어로 mongo 이미지를 다운로드 받았다.
docker images 명령어로 확인까지.
1 2 3 4 5 | jckang@jckang:~$ docker run --name mongo-server -d mongo 495526a2426c2f95e00d1d08419c1cf2dc2588d8a87934c5645778fb6e4788fc jckang@jckang:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 495526a2426c mongo "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 27017/tcp mongo-server | cs |
docker run 으로 다운받은 이미지를 컨테이너로 띄워보자.
(--name : 컨테이너명 지정, -d 또는 --detach : 백그라운드로 띄움)
docker ps 로 정상적으로 띄워졌는지 확인.
1 2 3 4 5 6 7 | jckang@jckang:~$ docker exec -it mongo-server bash root@495526a2426c:/# ls bin boot data dev docker-entrypoint-initdb.d etc home js-yaml.js lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@495526a2426c:/# ps -ef | grep mongo mongodb 1 0 1 05:25 ? 00:00:00 mongod --bind_ip_all root 53 42 0 05:26 pts/0 00:00:00 grep --color=auto mong | cs |
docker exec 로 컨테이너에 bash로 접속해보자
그리고 ps -ef | grep mongo 로 mongo 서비스가 실행중인지 확인.
1 2 3 4 5 6 7 | jckang@jckang:~$ docker logs mongo-server 2018-12-29T05:25:30.905+0000 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none' 2018-12-29T05:25:30.912+0000 I CONTROL [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=495526a2426c 2018-12-29T05:25:30.913+0000 I CONTROL [initandlisten] db version v4.0.5. ...(생략) ... | cs |
다른 방법으로는 docker logs 명령어로 로그를 확인할 수 있다.(실시간으로 볼려면 -f 옵션 사용하면 됨)
마지막으로 로컬에서 접속 가능한지 테스트 하기 위해 간단한 파이썬 플라스크 app을 실행 시켜보자.
아래와 같이 app.py를 만들었다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | from flask import Flask from pymongo import MongoClient app = Flask(__name__) client = MongoClient(host='localhost', port=27017 ) db = client['test'] print(db) app.run(host='0.0.0.0', port=5000) | cs |
그리고 실행 시켜보자.
1 2 3 4 5 6 7 | Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), u'test') * Serving Flask app "app" (lazy loading) * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: off * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) | cs |
연결이 잘되는 걸 확인 할 수 있다.
만약 연결 안된다면, docker container 종료시킨뒤(docker rm -f mongo-server)
포트 지정해서 다시 띄워보자(docker run --name mongo-server -d -p 27017:27017 mongo)
반응형
'개발 이야기 > NoSQL' 카테고리의 다른 글
Neo4j Cypher(Query) 연습 해보기 (0) | 2024.07.31 |
---|---|
Neo4j를 docker-compose로 띄워보기 (0) | 2024.07.30 |
MongoDB, docker-compose로 띄워보기 (0) | 2024.02.14 |
Redis를 Docker Compose 로 띄우기 (0) | 2021.01.22 |
Mongodb(Docker container) Volume 설정 (0) | 2018.12.29 |