我可以在没有docker-compose的情况下从其他docker容器中播种mongodb docker容器吗?

时间:2017-09-25 09:05:04

标签: mongodb docker 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

1 个答案:

答案 0 :(得分:0)

要从另一个容器访问容器,它们应该在公共网络中。

Docker-compose为所有服务创建公共网络。

要将新容器连接到现有网络,您可以使用 docker network connect

可能更好的选择种子数据库将使用docker exec命令,如下所示:

docker exec [OPTIONS] existing_container_with_mongodb mongoimport [your_args]