programing

도커 컨테이너에서 mongoimport를 실행합니다.

newstyles 2023. 6. 23. 21:48

도커 컨테이너에서 mongoimport를 실행합니다.

저는 도커를 개발에 사용합니다.

docker exec -it <My-Name> mongo

JSON 파일에서 MongoDB로 데이터를 가져오려고 하는데 실패합니다.

명령어는

mongoimport -d <db-name> -c <c-name> --file xxx.json

어떻게 해야 합니까?

설명에 따르면 호스트 시스템에 json 형식의 데이터 파일이 있으며 이 데이터를 컨테이너에서 실행 중인 mongodb로 가져오려고 합니다.

다음 단계를 수행할 수 있습니다.

#>docker exec -it <container-name> mongo
#>docker cp xxx.json <container-name-or-id>:/tmp/xxx.json
#>docker exec <container-name-or-id> mongoimport -d <db-name> -c <c-name> --file /tmp/xxx.json

마지막 단계에서 컨테이너에서 사용할 수 있는 파일 경로를 사용해야 합니다.

필요한 경우 추가 디버그를 수행하려면 컨테이너에 로그인하여 Linux 시스템에서 수행하는 방법을 실행할 수 있습니다.

#>docker exec -it <container-name-or-id> sh
sh $>cat /tmp/xxx.json
sh $>mongoimport -d <db-name> -c <c-name> --file /tmp/xxx.json

복사 파일 없이 실행:

docker exec -i <container-name-or-id> sh -c 'mongoimport -c <c-name> -d <db-name> --drop' < xxx.json
  • 1단계: 호스트 터미널에서 JSON 파일이 있는 디렉토리로 이동합니다.
  • 2단계: "docker cp xxx.json mongo:/tmp/xxx.json" 명령을 사용하여 JSON 파일을 현재 호스트 디렉토리에서 컨테이너 "tmp" 디렉토리로 복사합니다.
  • 3단계: "docker container exec -it mongo bash" 명령을 사용하여 컨테이너 명령 셸로 이동합니다.
  • 4단계: "mongoimport --uri=" 명령을 사용하여 "tmp" 폴더에서 컨테이너 데이터베이스로 컬렉션 가져오기<mongodb connection uri>" —collection=<c-name> --file /tmp/xxx.json"

우리가 가진 것:

  1. 도커 컨테이너에서 실행 중인 mongodb.
  2. 로컬 컴퓨터에서 가져올 json 파일
  3. 로컬 시스템의 mongoimport.exe

이 json 파일을 컬렉션으로 가져오기 위해 수행할 작업:

mongoimport --uri=<connection-string> --collection=<collection-name> --file=<path-to-file>

예:

mongoimport --uri="mongodb://localhost:27017/test" --collection=books --file:"C:\Data\books.json"

몽고 수입에 대한 자세한 내용은 여기에서 확인하십시오. https://www.mongodb.com/docs/database-tools/mongoimport/

언급URL : https://stackoverflow.com/questions/49895447/i-want-to-execute-mongoimport-on-a-docker-container