理想情况下,数据还将持久化在链接的数据卷容器中。
我可以使用不装入任何卷的mongo
基实例(dockerhub映像:psychemedia/mongo_nomount
-这基本上是没有volume/data/db
语句的基mongo Dockerfile)和一个Dockerfile
配置,将数据放入mongo
容器中:
ADD . /files
WORKDIR /files
RUN mkdir -p /data/db && mongod --fork --logpath=/tmp/mongodb.log && sleep 20 && \
mongoimport --db testdb --collection testcoll --type csv --headerline --file ./testdata.csv #&& mongod --shutdown
其中./testdata.csv
与DockerFile位于同一目录(./mongo-with-data
)中。
我的docker-compose配置文件包括以下内容:
mongo:
#image: mongo
build: ./mongo-with-data
ports:
- "27017:27017"
#Ideally we should be able to mount this against a host directory
#volumes:
# - ./db/mongo/:/data/db
#volumes_from:
# - devmongodata
#devmongodata:
# command: echo created
# image: busybox
# volumes:
# - /data/db
每当我尝试装入卷时,似乎会删除存储在/data/db
中的原始种子数据。我猜当卷挂载到/data/db
时,它会替换当前存在的任何内容。
也就是说,docker userguide建议:在创建容器时初始化卷。如果容器的基映像包含指定挂载点处的数据,则在卷初始化时将现有数据复制到新卷中?因此,如果将VOLUME命令放在种子run
命令之后,我希望数据能够持久保存?
从长远来看,我希望自动构建几个链接容器,然后分发一个vagrantfile
/docker-compose YAML文件,该文件将启动一组链接的应用程序,其中包括一个预植入的mongo
数据库和一个(部分预填充的)持久数据容器。
我使用另一个docker容器完成此操作,它的唯一目的是种子mongo,然后退出。我怀疑这和Ebaxt的想法是一样的,但是当我寻找答案的时候,我只想看到一个快速而又简单的例子。所以这是我的:
Docker-compose.yml
mongodb:
image: mongo
ports:
- "27017:27017"
mongo-seed:
build: ./mongo-seed
links:
- mongodb
# my webserver which uses mongo (not shown in example)
webserver:
build: ./webserver
ports:
- "80:80"
links:
- mongodb
mongo-seed/dockerfile
FROM mongo
COPY init.json /init.json
CMD mongoimport --host mongodb --db reach-engine --collection MyDummyCollection --type json --file /init.json --jsonArray
[
{
"name": "Joe Smith",
"email": "jsmith@gmail.com",
"age": 40,
"admin": false
},
{
"name": "Jen Ford",
"email": "jford@gmail.com",
"age": 45,
"admin": true
}
]
问题内容: 我正在尝试分发在几个链接的容器中运行的一组连接的应用程序,这些容器包括一个mongo数据库,该数据库需要: 分发包含一些种子数据; 允许用户添加其他数据。 理想情况下,数据还将保存在链接的数据卷容器中。 我可以使用不装载任何卷的基本实例(dockerhub映像:-本质上是不带该语句的基本mongo Dockerfile )和配置的方式将数据放入容器中: 其中与Dockerfile 位于
我正在使用我的Mac上的docker-compose(使用boot2docker)与官方的WordPress Docker图像一起工作。我需要做一次一次性的数据导入。我不知道该怎么做。如何将数据导入数据库容器?
我有一篇docker文章。yml,我有一个Postgres数据库,Grafana在上面运行以查询数据。 我用命令docker compose up启动这个compose,但是如果我不想丢失任何数据,我必须运行docker compose stop,而不是docker compose down。 我还阅读了,但“提交操作将不包括安装在容器内的卷中包含的任何数据”,所以我想它对我的需求没有用。 存储创
问题内容: 我想使用Dockerizing MongoDB并将数据存储在本地卷中。 但是..失败了… 它具有mongo:latest图像 我想将单声道数据存储在〜/ data中。所以- 但是…行不通… docker ps-没有守护进程mongo 尝试运行“ mongo”-失败 码头工人检查蒙哥 如果我不设置数据量,mongo image就可以工作! 但是,当设置数据量时,它不是…谁可以帮助我? 问
问题内容: 我已经按照Docker站点上的Django Quick Start指导紧密设置了Docker Django / PostgreSQL应用程序。 第一次运行Django的manage.py migration时,使用命令sudo docker-compose run web python manage.py migrate可以正常工作。该数据库建立在Docker PostgreSQL容器
问题内容: 我试图弄清楚如何使用docker-compose.yml和2个从sql dump导入的数据库来实现docker。 以上返回以下内容: 基本上,我试图在单个docker compose文件中获取整个堆栈设置,创建2个数据库并导入相应的sql转储。有人有什么建议吗? 问题答案: 就像其他可能对此有所了解的人的更新一样。 我通过删除解决了这个问题: 从 docker-compose.yml中