도커 컨테이너에서 MongoDB 노출

도커 컨테이너에서 MongoDB 노출

외부에서 액세스할 수 있도록 도커 컨테이너에서 실행 중인 mongodb를 노출하려고 합니다.

나는 docker compose 또는 mongod.conf 파일을 사용하여 거기에 호스트 바인딩을 설정할 수 있어야 한다는 것을 알았지만 공식 mongodb docker 이미지를 사용할 때 나는 compose를 수행하지 않았고 conf 파일도 찾을 수 없습니다.

여기 내가 한 일과 지금까지 시도한 일이 있습니다.

  1. 네트워크를 만들었습니다

도커 네트워크는 my-mongo-cluster를 생성합니다.

  1. 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"

  1. 처음으로 실행

    docker exec -it mongo-node1 몽고

  2. 복제본 세트에 대한 구성 설정

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

  1. 관리자를 만들었습니다

    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. :

관련 정보