如何访问 mongodb 已部署的 insde lxc 容器

how to access mongodb deployed insde lxc container

一直在玩lxc-lxd。我能够在 lxc 容器 (ubuntu 15.04) 中安装 mongodb。我能够从容器内访问所有内容,但反之则不行。容器和 lxc-bridge 被赋予 10.x.x.x IP 地址,而我的网络路由器 IP 地址以 192.x.x.x 开头。如何从容器外部(以及主机外部)访问 mongodb。我计划为 nginx 和 node.js 创建更多的容器,因此主机传递可能不是一个选项。

我的 Ubuntu 主机 运行 在 vi​​rtualbox VM 中,希望这不会导致问题。

首先按照这里的说明创建一个桥https://wiki.debian.org/LXC/SimpleBridge

我的界面显示的是 em1 而不是 eth0,因此请务必将 eth0 替换为您得到的任何内容。

# Comment out the following:
# The primary network interface
#allow-hotplug eth0
#iface eth0 inet dhcp

auto br0
iface br0 inet dhcp
        bridge_ports eth0
        bridge_fd 0
        bridge_maxwait 0

然后使用配置文件创建容器:

lxc profile create bridged
lxc profile device add bridged eth0 nic nictype=bridged parent=br0
lxc launch ubuntu/vivid test --profile=bridged

再次用你得到的任何东西替换 eth0,我认为这是多余的,因为我们已经有一个名为 br0 的网桥,事实上我是按相反的顺序做的。创建了配置文件和容器,但出现以下错误:

Error calling 'lxd forkstart db01 /var/lib/lxd/containers /var/log/lxd/db01/lxc.conf': err='exit status 1'

通过如上所述创建桥解决了这个问题。