我正在玩MongoDB和Docker,在這一點上,我正嘗試爲自己創建一個有用的圖像,以便在工作中使用。我創建了以下Dockerfile
:需要一些建議dockerizing MongoDB
FROM mongo:2.6
MAINTAINER Reynier Perez <[email protected]>
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/configdb
在Dockerfile
或足夠有這條線~/data/mongo:/data/configdb
在docker-compose.yml
? - 我假設(和我從here),只要我建立的Mongo映像,我將創建一個數據庫,並授予用戶密碼的完整權限,因爲它是在環境變量?我是對的? (我找不到任何有用的東西here)
- 如何將當前mongo備份(多個JSON文件)導入到應該在mongo容器上創建的數據庫中?我相信我需要運行
mongorestore
命令,但是如何?我是否需要創建腳本並在每次容器啓動時運行它?或者我應該在圖像構建過程中運行?什麼是最好的方法?
我試着從Ansible開始,但是對於單個任務來說可能稍後如果這仍然在增長,我會再考慮一次。即使我接受你的答案爲正確的答案,你是否可以改進它,爲bash添加一個簡單的腳本示例,允許創建一個數據庫並添加一個用戶?我沒有線索 – ReynierPM