[英]Can I seed a mongodb docker container from an other docker container without docker-compose?
我可以从另一个容器中播种正在运行的mongodb容器吗? 我可以使用docker-compose做到这一点,但这意味着它每次启动时都会播种,并将在数据库中创建重复数据。
这是我的撰写文件的一部分:
version: '5.2' # specify docker-compose version
# Define the services/containers to be run
services:
database: # My database
image: mongo # specify image to build container from
ports:
- "27017:27017" # specify port forewarding
我想用来播种的Dockerfile
FROM mongo
COPY init.json /init.json
CMD mongoimport --host=127.0.0.1 --port=27017 --db mean-docker --collection authusers --type json --file /init.json --jsonArray
init.json
[
{
"name": "foo",
"pass": "bar"
},
{
"name": "foo2",
"pass": "bar2"
}
]
通过此设置,我得到:
Failed: error connecting to db server: no reachable servers
为了从另一个容器访问容器,它们应该位于公共网络中。
Docker-compose为所有服务创建通用网络。
要将新容器连接到现有网络,可以使用docker network connect
播种数据库的更好的选择是使用docker exec命令,如下所示:
docker exec [OPTIONS] existing_container_with_mongodb mongoimport [your_args]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.