사용한 이미지
mongo:4
4.0.16, 4.0:
- 4.0.16-xenial
- 4.0.16-windowsservercore-ltsc2016
- 4.0.16-windowsservercore-1809
1. Mongo Image 다운로드
> docker pull mongo:4
mongo 4.0.16 버전 이미지를 docker repository에서 다운로드
2. Mongo image를 컨테이너에 올리기
> docker run --name mongodb -d -p 17017:27017 mongo:4
--name : 실행하는 컨테이너의 name=mongodb
-d : 백그라운드에서 실행
-p 17017:27017 : 호스트의 17017포트를 docker container의 27017포트로 연결(27017은 mongodb의 default port)
mongo:4 : mongo:4 이미지를 해당 컨테이너에서 실행하겠다.
3. Mongo를 올린 컨테이너의 bash에 접속
> docker exec -i -t mongodb base
----프롬프트 변경
>$ mongo
> : host 컴퓨터 프롬프트
>$ : docker container 프롬프트
docker exec : 외부에서 컨테이너로 명령을 전달하는 command
-i : container에 attach(접속)되어있지 않아도, Standard Input(stdin)을 유지.
-t : TTY 모드(pseudo-TTY)를 사용합니다. 라고 하는데, 이 옵션을 줘야 bash를 쓸수 있다고 한다.
----
mongo : mongo db로 접속
4. 관리자 계정 생성
># use admin
># docker container안에서 접속한 mongodb 프롬프트
use ~~ : ~~데이터 베이스를 사용한다.
(~~가 있으면 그대로사용, 없으면 바로 생성하여 사용한다)
admin Database를 선택
># db.createUser({
user: "admin-name",
pwd: "admin-password",
roles: [ { role: "userAdminAnyDatabase", db: "adminDB" } ]
})
admin-name : 관리자 계정생성 (이 부분은 본인의 아이디로 변경)
admin-password : 해당 계정 비밀번호(이 부분은 본인의 비밀번호로 변경)
roles : 해당 계정 권한 및 db
5. 일반 계정 생성
먼저, 관리자 계정을 생성한다.
>$ mongo -u "admin-name" -p "admin-password" -authenticationDatabaase "adminDB"
-u : 접속 계정
-p : 접속 계정 비밀번호
-authenticationDatabase : 해당 계정이 권한을 가진 DB
># use mydb
># db.createUser({
user: "user-name",
pwd: "user-password",
roles: [ { role: "dbAdmin", "readWrite", db: "mydb"} ]
})
mydb에 user-name 유저를 생성한다.
참고한 좋은 블로그들..