【发布时间】:2016-11-01 21:05:06
【问题描述】:
我正在使用 MongoDB 和 Docker,此时我正在尝试创建一个有用的图像供自己在工作中使用。我创建了以下Dockerfile:
FROM mongo:2.6
VOLUME /data/db /data/configdb
CMD ["mongod"]
EXPOSE 27017
我已将其添加到我的docker-compose.yml 文件中:
version: '2'
services:
### PHP/Apache Container
php-apache:
container_name: "php55-dev"
image: reynierpm/php55-dev
ports:
- "80:80"
environment:
PHP_ERROR_REPORTING: 'E_ALL & ~E_DEPRECATED & ~E_NOTICE'
volumes:
- ~/mmi:/var/www
- ~/data:/data
links:
- mongodb
### MongoDB Container
mongodb:
container_name: "mongodb"
build: ./mongo
environment:
MONGODB_USER: "xxxx"
MONGODB_DATABASE: "xxxx"
MONGODB_PASS: "xxxx"
ports:
- "27017:27017"
volumes:
- ~/data/mongo:/data/db
我对我所做的这个设置有一些疑问:
- 我需要
VOLUME /data/db /data/configdbDockerfile还是足以让~/data/mongo:/data/configdbdocker-compose.yml有这条线? - 我假设(我从here 获取)一旦我构建了 Mongo 映像,我将创建一个数据库并使用密码为用户提供完全权限,因为它在环境变量上?我是对的? (我找不到任何有用的东西here)
- 如何将当前的 mongo 备份(多个 JSON 文件)导入应在 mongo 容器上创建的数据库?我相信我需要运行
mongorestore命令,但如何?我需要创建一个脚本并在每次容器启动时运行它吗?或者我应该在图像构建期间运行?最好的方法是什么?
【问题讨论】:
标签: mongodb docker docker-compose dockerfile