web-dev-qa-db-ja.com

docker-composeおよびdocker-machineを使用してmongoDBの外部ボリュームをマウントする方法

mongoDBデータをコンテナーの外部と指定されたボリュームに永続化したいです。 docker-composeを使用していますが、ymlファイルは次のようになります

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

その画像のドッカーハブページに記載されているように( https://hub.docker.com/_/mongo/ )使用できます

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

ホストパスを使用します./data

14
dnephin

私のようなOSXシステムでコンテナを起動しようとしていると思いますか? joshuajabbourが here を指摘しているため、ホストマシンのボリュームディレクトリを/ Users(または〜)の下に置くことはできません。

例えば試してみてください

 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

ビルドして実行する

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