Vag*_*bai 7 ubuntu lxc paravirtualization
我正在尝试设置一个服务器,我将在其中运行多个应用程序。主要是内部的,但也可能是像 Redmine 这样的开源项目。它们都是在无头浏览器上运行的 Rails/Ruby 应用程序/测试脚本。本质上,我试图在内部设置一个类似 heroku 的环境,并希望在这些正在运行的进程之间进行某种进程隔离。
我首先偶然发现了 chroot jails,然后了解了 LXC。LXC 似乎对普通的 chroot jails 提供了更好的控制。我有一个 nginx 前端,我想在隔离的容器中运行网络服务器应用程序进程(thin/mongrel/webrick)。通常我们只是在本地 IP 地址上启动这些进程,并为它们设置 nginx 代理。完成这项工作的最佳方法是什么?人们是否为容器设置了静态桥接 IP 并让 nginx 指向它?如何确保容器中运行的网络服务器只能由外部主机访问?
关于 LXC 的文档似乎有点稀疏。指向一些好的教程或 HOWTO 的指针将不胜感激。我的目标部署环境是一个 Lucid 64 位盒子。
PS我不是Linux大师。所以,要温柔。
Sto*_*one 13
假设你自己的IP是192.168.1.1,你的网关是192.168.1.254,你的网络是192.168.1.0/24。
你应该在你的主机上创建一个桥接接口,像这样在/etc/network/interfaces文件中
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address 192.168.1.1
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.254
bridge_ports eth0
bridge_stp off
bridge_fd 3
bridge_hello 1
bridge_maxage 5
Run Code Online (Sandbox Code Playgroud)
然后在 LXC 中安装一个基本的 ubuntu:
apt-get install lxc vlan bridge-utils python-software-properties screen
mkdir /lxc
debootstrap oeniric /lxc/ubuntu
chroot ubuntu
locale-gen en_US.UTF-8
apt-get update
apt-get install lxcguest ssh
passwd
rm /etc/mtab
ln -s /proc/mounts /etc/mtab
exit
Run Code Online (Sandbox Code Playgroud)
创建一个包含内容的文件/lxc/ubuntu.config
lxc.utsname = ubuntu
lxc.tty = 8
lxc.rootfs = /lxc/ubuntu
lxc.mount = /lxc/ubuntu.fstab
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.name = eth0
lxc.network.mtu = 1500
lxc.network.ipv4 = 192.168.1.10/24
Run Code Online (Sandbox Code Playgroud)
/lxc/ubuntu.fstab与
none /lxc/ubuntu/dev/pts devpts defaults 0 0
none /lxc/ubuntu/proc proc defaults 0 0
none /lxc/ubuntu/sys sysfs defaults 0 0
none /lxc/ubuntu/run tmpfs defaults 0 0
Run Code Online (Sandbox Code Playgroud)
添加到/lxc/ubuntu/etc/rc.local
route add default gw 192.168.1.254
Run Code Online (Sandbox Code Playgroud)
根据您的需要编辑/lxc/ubuntu/etc/resolv.cont。
然后你可以创建你的机器
lxc-create -f /lxc/ubuntu.config -n ubuntu
Run Code Online (Sandbox Code Playgroud)
然后开始
lxc-start -n ubuntu
Run Code Online (Sandbox Code Playgroud)
或停止
lxc-stop -n ubuntu
Run Code Online (Sandbox Code Playgroud)
或最终摧毁
lxc-destroy -n ubuntu
Run Code Online (Sandbox Code Playgroud)
您的新虚拟机的 IP 为 192.168.1.10,并且可以在网络上访问。
| 归档时间: |
|
| 查看次数: |
8575 次 |
| 最近记录: |