连接到在Docker中运行的mongodb [英] Connect to mongodb running inside Docker

查看:95
本文介绍了连接到在Docker中运行的mongodb的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Windows 10

I am using Windows 10

我已经安装了Virtual Box

I have installed Virtual Box

在virtual Box中,我已经安装了Ubuntu,网络设置为Bridge Network

In virtual Box I have installed Ubuntu with network setting as Bridge Network

我正在使用Windows的Docker Toolbox启动Docker

I am using Docker Toolbox for Windows to Start Docker

在Docker中,我在默认端口上运行了Mongodb容器

In Docker I have Mongodb container running at default port

我正在在Virtual Box中安装的Ubuntu内部进行所有开发工作

I am doing all my development stuff inside Ubuntu installed in Virtual Box

这是我的终端日志

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
default   *        virtualbox   Running   tcp://192.168.99.100:2376           v17.06.0-ce


$ docker-machine env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="C:\Users\test\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
export COMPOSE_CONVERT_WINDOWS_PATHS="true"
# Run this command to configure your shell:
# eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env)


$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
77427d4fc49b        mongo               "/bin/sh -c '/usr/..."   About an hour ago   Up 45 minutes                           mongo

问题是我不知道如何从在Virtual Box上运行的Ubuntu全局连接到此运行MongoDB的容器

来自Ubuntu的终端日志

Terminal Log from Ubuntu

test@test-VirtualBox:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:e1:c8:be brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.27/24 brd 192.168.1.255 scope global dynamic enp0s3
       valid_lft 78034sec preferred_lft 78034sec
    inet6 fe80::2ae9:9e0c:d9a3:f044/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:3d:79:a8:7f brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever

推荐答案

您需要使用端口映射运行mongo容器

You need to run your mongo container with port mappings

docker run -p 27017:27017 mongodb

然后您可以使用 192.168.99.100:27017 进行访问.

And then you can access using 192.168.99.100:27017.

编辑1

如果要从另一个VM连接它,请确保添加具有公用的仅主机"网络局域网的适配器.在大多数情况下,这将是 vboxnet1

If you are connect it from another VM then make sure to add an adapter with common Host-only network lan. In most cases this would vboxnet1

并为您的Ubuntu VM配置以下网络(确保docker VM和Ubuntu VM使用相同的网络)

And configure the network as below for your Ubuntu VM (make sure both docker VM and Ubuntu VM use the same)

这篇关于连接到在Docker中运行的mongodb的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆