连接到在Docker中运行的mongodb [英] Connect to mongodb running inside Docker
问题描述
我正在使用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屋!