도커 합성 및 도커 기계를 사용하여 mongoDB용 외부 볼륨을 탑재하는 방법
나는 지속하고 싶습니다.mongoDB
컨테이너 외부 및 지정된 볼륨의 데이터.나는 도커 컴포지를 사용하고 있고 yml 파일은 다음과 같습니다.
web:
build: .
command: python -u app.py
ports:
- "5000:5000"
volumes:
- .:/todo
links:
- db
db:
image: mongo:3.0.2
해당 이미지의 도커 허브 페이지에 문서화된 대로(https://hub.docker.com/_/mongo/) 를 사용할 수 있습니다.
volumes:
- './data:/data/db'
호스트 경로를 사용합니다../data
당신도 저처럼 컨테이너를 OSX 시스템에서 시작하려고 하는 것 같은데요?여기서 Joshuajabor가 가리키는 호스트 시스템 볼륨 디렉토리는 /Users(또는 ~) 아래에 있을 수 없습니다.
예를 들어 보겠습니다.
volumes:
- /usr/local/mongodb:/todo
파일 사용
web:
build: .
command: python -u app.py
ports:
- "5000:5000"
volumes:
- .:/todo # HERE --> /mnt/c/temp/mongo:/data/db (mnt= root | c = your drive | temp and mongo = folder
links:
- db
db:
image: mongo:3.0.2
- 그런 다음 값은 /mnt/c/temp/mongo:/data/db가 될 수 있습니다.
환경 변수를 사용하는 것을 잊지 마십시오.
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: fw324fe
저도 같은 문제가 있었습니다. Windows 10과 함께 도커를 사용하고 있고 WSL 2를 사용하여 Ubuntu와 통합하고 있습니다. 전체 경로를 입력해야만 문제를 해결할 수 있었습니다.
volumes:
- /home/you_user/mongoDocker/docker:/data/db
이 문서는 저에게 도움이 되었습니다: https://docs.docker.com/compose/compose-file/ #http://#
여러 서비스에서 볼륨을 재사용하려면 명명된 볼륨을 최상위 레벨로 선언해야 합니다.volumes
열쇠.
이 예에서는 백엔드 서비스에서 사용 중인 명명된 볼륨(db-data)과 단일 서비스에 대해 정의된 바인딩 마운트를 보여 줍니다.
services:
backend:
image: awesome/backend
volumes:
- type: volume #this is to declare that the type is volume
source: db-data #this is the name of your already existing volume
target: /data #this is the target or destination of the data being saved by your volume
volume:
nocopy: true #The nocopy modifier is for when you are creating a volume and data already exists in the container's path, you can specify if you want that data copied when the volume is created.
volumes:
db-data:
external: true # the external flag allows you to use volumes created outside the scope of the docker-compose file
#Mongo Dockerfile
FROM alpine:edge
MAINTAINER "loko" <binario200@gmail.com>
# proxy settings
ARG http_proxy=http://your-corporate-proxy-if-is-need-it/
ARG https_proxy=http://your-corporate-proxy-if-is-need-it/
ARG no_proxy=localhost,127.0.0.0/8,::1,15.0.0.0/8,16.0.0.0/8
ADD run /
ADD dosu /sbin/
RUN chmod +x /sbin/dosu && \
echo http://dl-4.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories && \
apk add --no-cache mongodb
VOLUME /data/db
EXPOSE 27017 28017
ENTRYPOINT [ "/run" ]
CMD [ "mongod" ]
도커 작성
version: '2.0'
volumes:
data:
external:
name: "the-volume-name-you-want"
services:
web:
build:
context: .
dockerfile: "Dockerfile"
args:
- HTTP_PROXY
- HTTPS_PROXY
- http_proxy
- https_proxy
- no_proxy
- NO_PROXY
image: "docker-hub-OR-your-built-image-name"
environment:
- http_proxy=$http_proxy
- https_proxy=$https_proxy
- no_proxy=$no_proxy
- HTTP_PROXY=$HTTP_PROXY
- HTTPS_PROXY=$HTTPS_PROXY
- NO_PROXY=$NO_PROXY
ports:
- "8080"
restart: always
depends_on:
- mongo
mongo:
image: "your-favorite-mongodb-image-name"
environment:
- http_proxy=$http_proxy
- https_proxy=$https_proxy
- no_proxy=$no_proxy
- HTTP_PROXY=$HTTP_PROXY
- HTTPS_PROXY=$HTTPS_PROXY
- NO_PROXY=$NO_PROXY
restart: always
volumes:
- data:/data/db
빌드 앤 런
docker-compose build .
docker-compose up
언급URL : https://stackoverflow.com/questions/34390220/how-to-mount-external-volume-for-mongodb-using-docker-compose-and-docker-machine
'programing' 카테고리의 다른 글
mongodb에서 달러 기호는 그룹 측면에서 무엇을 의미합니까? (0) | 2023.07.05 |
---|---|
공통 필드가 없는 두 테이블 결합 (0) | 2023.07.05 |
ID 열이 있는 SqlBulkCopy 삽입 (0) | 2023.07.05 |
선택 쿼리에 대한 최적의 가져오기 크기를 확인하는 방법 (0) | 2023.06.30 |
R 데이터 프레임에서 'Inf' 값 정리 (0) | 2023.06.30 |