Docker-compose:如何连接到mongo容器

超级M4n

我正在尝试在Docker容器中运行我的简单Ruby应用程序(我是Windows 10用户)。这只是一堆在Mongo数据库上运行的Ruby和bash脚本。我正在docker-compose组成3个容器-一个用于mongo数据库(使用官方mongo映像),一个用于我的应用程序,一个用于填充数据库。

然后我运行docker-compose builddocker-compose up命令。Mongo可以很好地唤醒,并接受数据导入。然后,我打开另一个Powershell窗口并运行docker run -it <name> /bin/bash以获取交互式Shell并运行我的脚本。不幸的是,由于某种原因,他们无法连接到mongo。

我的连接字符串如下所示:

@client = Mongo::Client.new([ 'mongodb:27017' ], :database => 'test')

我尝试了不同版本的它,像mongodbmongodb://mongodb:27017mongodb://mongo:27017'但似乎没有任何工作。当我运行脚本时,它会运行几秒钟,然后在我对数据库执行任何操作的第一行给出错误。Mongo没有显示任何连接尝试。

我究竟做错了什么?

Docker文件

FROM ruby:2.5
WORKDIR /usr/src/app
COPY Gemfile Gemfile.lock ./
RUN bundle install
COPY . .

Mongo种子Dockerfile

FROM mongo
COPY test.csv /test.csv
CMD mongoimport --host mongodb -d test -c places --type csv --file /test.csv --headerline

docker-compose.yml

version: '3'
services:
  mongodb:
    container_name: mongodb
    image: mongo:latest
    volumes:
      - mongodata:/data/db
    ports:
      - 27017:27017
  web:
    build: .
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    links:
      - mongodb
    depends_on:
      - mongodb
    tty: true
  mongo-seed:
    build: ./mongo-seed
    links:
      - mongodb
volumes:
  mongodata:
扬尼克·哈曼(Yannic Hamann)

与其生成一个新的容器,而不是用docker run连接到已经运行的容器的外壳docker exec -ti <name> bash现在,您应该能够使用ping Ping数据库ping mongodb或执行脚本。

这样做的原因是,您创建的新容器没有与数据库位于同一网络中。

https://docs.docker.com/compose/networking/ https://docs.docker.com/engine/reference/commandline/network_connect/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

容器初始化后如何连接到docker-compose mysql?

从主机连接到mongo docker容器

如何使用docker-compose而不是使用docker bridge从docker容器连接到localhost:9092

无法从Docker容器中的Flask连接到mongo

我无法使用容器docker连接到mongo

如何从独立容器连接到Docker Compose容器

无法使用mongo连接到docker容器

Docker-Compose:无法连接到Mongo

如何从docker-compose创建的docker容器内部连接到本地计算机?

如何从主机连接到Docker Postgres容器

如何使用pymongo连接到Docker容器内的Mongo?

Docker-compose不将容器连接到网络

如何从主机连接到数据库-在docker compose下运行的容器中的SQL Server

如何将Mongo docker容器连接到主机上安装的mongodb罗盘社区

如何连接到rabbitMQ docker容器?

如何在docker-compose中将卷连接到docker容器

如何使用域名连接到Docker容器

如何在Docker Compose多容器应用程序中使用GoCQL连接到bitnami / cassandra?

使用docker时Go无法连接到Mongo容器

docker-compose应用程序容器无法连接到mongo容器

如何从Docker容器连接到minikube集群?

docker-compose:无法连接到 memcached 容器

Docker Compose - Redis 容器拒绝连接到 Node 容器

docker-compose 并连接到 Mongo 容器

如何运行连接到 nginx 的 docker 容器

nodejs 容器不会连接到 redis 容器 docker-compose

从远程主机连接到 Docker 容器内的 Mongo Router

如何连接到 docker 容器的 MongoDb

Docker:如何连接到 docker-compose.yml 文件中未定义的 kafka 容器