Docker

[Docker] MongoDB 설치하기

nang. 2020. 3. 27. 21:12
반응형
SMALL

MongoDB 설치하기 - docker-compose 사용 안한 버전

Docker 위에 MongoDB 컨테이너 설치하기

1. mongo 폴더 만들기

  • 컨테이너 설치별로 작업 폴더를 만들어 작업하는 것이 좋음
$ mkdir mongo
$ cd mongo

2. Dockerfile 파일 만들기

$ code Dockerfile
## Visual Code 통해 파일이 생성됨
FROM mongo 

# WORKDIR
# RUN
# COPY

CMD ["mongod"]

3. Dockerfile 빌드하기

$ docker build -t ninizz/mymongodb:latest .
Sending build context to Docker daemon  3.072kB
Step 1/2 : FROM mongo
latest: Pulling from library/mongo
2746a4a261c9: Pull complete
4c1d20cdee96: Pull complete
0d3160e1d0de: Pull complete
c8e37668deea: Pull complete
fc3987a82b4c: Pull complete
c75f139e0836: Pull complete
4acc9c8680b4: Pull complete
fb02df30d947: Pull complete
ae725ef3d2ce: Pull complete
e30f54ed6b43: Pull complete
bca9e535ddb8: Pull complete
9c3edad81b2a: Pull complete
6dbcf78fe5ae: Pull complete
Digest: sha256:7a1406bfc05547b33a3b7b112eda6346f42ea93ee06b74d30c4c47dfeca0d5f2
Status: Downloaded newer image for mongo:latest
 ---> a0e2e64ac939
Step 2/2 : CMD ["mongod"]
 ---> Running in 444f7ac0521c
Removing intermediate container 444f7ac0521c
 ---> 2b0b8f4dbbcd
Successfully built 2b0b8f4dbbcd
Successfully tagged ninizz/mymongodb:latest
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.
$
  • 현재 위치에 있는 Dockerfileninizz/mymongodb:latest 라는 이름으로 빌드하겠다.

4. 이미지 확인

  • 빌드하여 이미지가 만들어졌는지 확인
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ninizz/mymongodb    latest              2b0b8f4dbbcd        8 seconds ago       364MB

5. 컨테이너 생성하기

$ docker run -p 27017 ninizz/mymongo
  • MongoDB 포트
    • 27017
  • run 하고나면 작업 중이던 셸이 로그창이 되니까 새로운 셸을 띄운다.
    • 프로세스가 띄워졌다는 뜻

6. 프로세스 확인

$ docker ps
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS                      NAMES
4acbda534af1        ninizz/mymongodb:latest   "docker-entrypoint.s…"   35 seconds ago      Up 30 seconds       0.0.0.0:32768->27017/tcp   jolly_zhukovsky
  • 호스트 포트 (32768)
    • 컨테이너 생성 시 지정을 안했기 때문에 랜점 배정

7. 컨테이너 실행시키기

$ docker exec -it 4acbda534af1 bash
  • 컨테이너 ID 4acbda534af1를 bash 셸로 실행시키겠다.

8. MongoDB 접속하기

## bash shell
root@4acbda534af1:/ 
root@4acbda534af1:/ mongo
>
  • $ mongo -h -p
    • 지정 IP / 지정 PORT 접속하는 법

9. DB TEST

> show dbs;
admin   0.000GB
config  0.000GB
local   0.000GB

> use bookstore;
switched to db bookstore

> db.books.save({'title':'Docker compose sample'});
WriteResult({ "nInserted" : 1 })

> db.books.find();
{ "_id" : ObjectId("5e158bc251bcf9f7e5986b83"), "title" : "Docker compose sample" }
반응형
LIST