繁体   English   中英

我可以在没有docker-compose的情况下从另一个Docker容器播种mongodb docker容器吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM