mongoDB
データをコンテナーの外部と指定されたボリュームに永続化したいです。 docker-composeを使用していますが、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システムでコンテナを起動しようとしていると思いますか? joshuajabbourが here を指摘しているため、ホストマシンのボリュームディレクトリを/ Users(または〜)の下に置くことはできません。
例えば試してみてください
volumes:
- /usr/local/mongodb:/todo
#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