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

标签 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

初始化.json

[
  {
    "name": "foo",
    "pass": "bar"
  },
  {
    "name": "foo2",
    "pass": "bar2"
  }
]

通过此设置,我得到:

Failed: error connecting to db server: no reachable servers

最佳答案

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

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

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

使用 docker exec 为您的数据库播种可能是更好的选择像这样的命令:

docker exec [OPTIONS] existing_container_with_mongodb mongoimport [your_args]

关于mongodb - 我可以在没有 docker-compose 的情况下从其他 docker 容器播种 mongodb docker 容器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46401400/

相关文章:

mysql - 容器在HOST网络中运行时如何配置marathon-lb?

docker - APPDATA 在默认的 docker-compose.override 文件中在哪里初始化

docker - Docker Compose无法打开文件构建:无此类文件或目录

php - PHP 中来自 MongoDB 的 "Show Users"

mongodb - 如何从 map-reduce 集合中获取 _id 元素

javascript - Heroku 部署错误 : Cannot get Node App running after Deploy : Cannot find module '/app/web.js'

docker - docker-compose 中的 command/CMD 不等同于 Dockerfile 中的 CMD

node.js - 我用 populate mongoose 获取所有文档

wordpress - 如何在网络中的另一台计算机上访问 wordpress-docker 站点

docker - 使用Docker的Kubernetes,我们是否需要在所有节点(包括Kubernetes主节点)上使用Docker CRI?