webentwicklung-frage-antwort-db.com.de

Wie mounten Sie ein externes Volume für MongoDB mit Docker-Compose und Docker-Maschine

Ich möchte die mongoDB-Daten außerhalb des Containers und auf einem angegebenen Volume beibehalten. Ich verwende Docker-Compose und die Yml-Datei sieht aus wie

web:
  build: .
  command: python -u app.py
  ports:
    - "5000:5000"
  volumes:
    - .:/todo
  links:
    - db
db:
  image: mongo:3.0.2
14
casra

Wie auf der Docker-Hub-Seite für dieses Bild ( https://hub.docker.com/_/mongo/ ) beschrieben, können Sie verwenden

volumes:
  - './data:/data/db'

Welcher wird den Hostpfad verwenden ./data

9
dnephin

Ich nehme an, Sie versuchen, den Container auf einem OSX-System wie mir zu starten? Das Volume-Verzeichnis des Host-Computers kann sich nicht unter/Users (oder ~) befinden, da joshuajabbour auf here verweist.

Versuchen Sie es zum Beispiel 

 volumes:
   - /usr/local/mongodb:/todo
9
Philiiiiiipp
#Mongo Dockerfile
FROM Alpine:Edge

MAINTAINER "loko" <[email protected]>

# 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" ]

# Docker Compose

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

bauen und laufen

docker-compose build .
docker-compose up
0
Victor R Hdez