윈도우에서 도커 mongo 이미지를 시작할 수 없습니다.
이미지를 시작할 때 다음 오류가 발생합니다.
2019-02-27T17:09:41.095+0000 E STORAGE [initandlisten] WiredTiger error (17) [1551287381:95206][1:0x7fae36fc4a40], connection: __posix_open_file, 715:
/data/db/WiredTiger.wt: handle-open: open: File exists Raw: [1551287381:95206][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists
2019-02-27T17:09:41.108+0000 I STORAGE [initandlisten] WiredTiger message unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.6
2019-02-27T17:09:41.111+0000 E STORAGE [initandlisten] WiredTiger error (1) [1551287381:111166][1:0x7fae36fc4a40], connection: __posix_open_file, 715:
/data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1551287381:111166][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2019-02-27T17:09:41.149+0000 E STORAGE [initandlisten] WiredTiger error (17) [1551287381:149030][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists Raw: [1551287381:149030][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists
2019-02-27T17:09:41.153+0000 I STORAGE [initandlisten] WiredTiger message unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.7
2019-02-27T17:09:41.156+0000 E STORAGE [initandlisten] WiredTiger error (1) [1551287381:156133][1:0x7fae36fc4a40], connection: __posix_open_file, 715:
/data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1551287381:156133][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2019-02-27T17:09:41.177+0000 E STORAGE [initandlisten] WiredTiger error (17) [1551287381:177375][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists Raw: [1551287381:177375][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists
2019-02-27T17:09:41.192+0000 I STORAGE [initandlisten] WiredTiger message unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.8
2019-02-27T17:09:41.194+0000 E STORAGE [initandlisten] WiredTiger error (1) [1551287381:194762][1:0x7fae36fc4a40], connection: __posix_open_file, 715:
/data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1551287381:194762][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2019-02-27T17:09:41.200+0000 W STORAGE [initandlisten] Failed to start up WiredTiger under any compatibility version.
2019-02-27T17:09:41.200+0000 F STORAGE [initandlisten] Reason: 1: Operation not permitted
2019-02-27T17:09:41.201+0000 F - [initandlisten] Fatal Assertion 28595 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 704
.env 폴더 값은
MONGO_SAVE_PATH=./database/db
DB 도커 파일:
FROM mongo:latest
VOLUME ["/data/db"]
WORKDIR /data
EXPOSE 27017
CMD ["mongod"]
docker-compose.yml DB 컨테이너
services:
my-mongo-db:
build: ./database
ports:
- 32815:27017
volumes:
- ./database/db:/data/db
이걸 어떻게 고쳐야 할지 모르겠어요.그러나 Linux 및 Mac에서는 이 문제가 나타나지 않습니다.
경고(Windows 및 OS X):윈도우즈 및 OS X의 기본 도커 설정에서는 VirtualBox VM을 사용하여 도커 데몬을 호스팅합니다.안타깝게도 VirtualBox가 호스트 시스템과 Docker 컨테이너 간에 폴더를 공유하는 데 사용하는 메커니즘이 MongoDB에서 사용하는 메모리 매핑 파일과 호환되지 않습니다(vbox 버그, docs.mongodb.org 및 관련 jira.mongodb.org 버그 참조).즉, 호스트에 매핑된 데이터 디렉토리로 MongoDB 컨테이너를 실행할 수 없습니다.
데이터 유지를 위한 해결 방법:
docker volume create --name=mongodata
docker run -d -p 27017:27017 -v mongodata:/data/db --name=mymongo mongodb:3.3
자세한 내용은 여기에 있습니다.
도커 합성을 사용하는 경우 위의 답변을 복제하는 방법은 다음과 같습니다.
services:
mongodb_container:
...
volumes:
- mongodata:/data/db
volumes:
mongodata:
위의 샘플은 mongodb 저장소에 필요한 yml 파일의 일부만 나타냅니다.
비록 오거스타스가 옳지만, 저는 이 대답이 특히 유용하다는 것을 알았습니다.docker-compose.yml
.
해결 방법은 다음과 같습니다.
- 작성
.env
같은 경로에 있는 파일docker-compose
다음과 같은 환경 변수에 현재 경로를 파일로 저장합니다.
MONGO_HOST_DATA=/Users/user123/MyMongoProject //path to mongo data folder (for C:\Users\user123\MyMongoProject)
- 이제, 당신의
docker-compose
파일, 위에서 언급한 변수를 바꿉니다.
services:
my-mongo-db:
build: ./database
ports:
- 32815:27017
volumes:
- ${MONGO_HOST_DATA}/database/db:/data/db
- 실제 경로가 환경 변수를 어떻게 대체했는지 확인하려면 다음 명령을 사용할 수 있습니다.
docker-compose config
또한 C:\ 이외의 디스크 드라이브를 사용하는 경우 Docker 파일 공유 설정을 변경할 수 있습니다.
이게 도움이 되길 바랍니다.
저는 WSL2에서 Mongo를 실행하는 동안 NTFS 권한으로 인해 이 문제가 발생했습니다.ext4(WSL 파티션)로 이동하여 수정되었습니다.
완전히 같은 문제는 아니지만 Ubuntu에서 mongo용 도커 컨테이너를 회전시키고 기존 디렉터리를 컨테이너에 마운트하려고 시도했을 때 동일한 오류 메시지를 보았습니다.
docker run --name some-mongo -p 27017:27017 -v $PWD/db-data:/data/db -d mongo
이 경우 오류는 마운트된 HDD의 디렉토리에서 명령을 실행하려고 할 때만 나타나고 /db-data 디렉토리가 있는 코드베이스를 Ubuntu가 설치된 SSD로 마이그레이션하여 해결할 수 있었습니다.
언급URL : https://stackoverflow.com/questions/54911021/unable-to-start-docker-mongo-image-on-windows
'programing' 카테고리의 다른 글
관리자 도커 컨테이너를 mariadb 도커 컨테이너와 연결하려면 어떻게 해야 합니까? (0) | 2023.06.21 |
---|---|
다른 공간에서 이름이 같은 변수 사용 (0) | 2023.06.21 |
Oracle DB의 조건부 고유 제약 조건 (0) | 2023.06.21 |
SELECT를 사용할 수 없는 이유...집계 기능이 있는 업데이트의 경우? (0) | 2023.06.21 |
R의 군집 분석: 최적 군집 수 결정 (0) | 2023.06.21 |