외부에서 액세스할 수 있도록 도커 컨테이너에서 실행 중인 mongodb를 노출하려고 합니다.
나는 docker compose 또는 mongod.conf 파일을 사용하여 거기에 호스트 바인딩을 설정할 수 있어야 한다는 것을 알았지만 공식 mongodb docker 이미지를 사용할 때 나는 compose를 수행하지 않았고 conf 파일도 찾을 수 없습니다.
여기 내가 한 일과 지금까지 시도한 일이 있습니다.
- 네트워크를 만들었습니다
도커 네트워크는 my-mongo-cluster를 생성합니다.
- 3개의 mongo db 인스턴스를 실행했습니다.
docker run --name mongo-node1 -d --net my-mongo-cluster mongo --replSet "rs0" docker run --name mongo-node2 -d --net my-mongo-cluster mongo --replSet "rs0" docker run --name mongo-node3 -d --net my-mongo-cluster mongo --replSet "rs0"
처음으로 실행
docker exec -it mongo-node1 몽고
복제본 세트에 대한 구성 설정
config = { "_id" : "rs0", "members" : [ { "_id" : 0, "host" : "mongo-node1:27017" }, { "_id" : 1, "host" : "mongo- node2:27017" }, { "_id" : 2, "host" : "mongo-node3:27017" } ] }
rs.initiate(config) rs.initialize
관리자를 만들었습니다
admin db.createUser( { user: "admin", pwd: "admin",roles: [ { role: "userAdminAnyDatabase", db: "admin" }, >"readWriteAnyDatabase" ] } ) 사용
다음 명령문을 사용하여 컨테이너를 실행해 보았습니다.
--expose=27017
--auth
--entrypoint 'mongod --bind_ip_all'
-> 오류가 발생합니다.
AWS 내에서 실행 중이고 27017에 대한 인바운드 규칙이 올바르게 설정되었습니다.
대답은 항상 다음과 같습니다.
couldn't connect to server ec2-52-59-191-1.eu-central-1.compute.amazonaws.com:27017, connection attempt failed: SocketException: Error connecting to ec2-52-59-191-1.eu-central-1.compute.amazonaws.com:27017 (52.59.191.1:27017) :: caused by :: No connection could be made because the target machine actively refused it. :