在ubuntu上运行linux容器(lxc)以隔离Web服务器进程(ruby / thin)

我正在尝试设置一个服务器,我将运行多个应用程序.主要是内部的,但也可能是像Redmine这样的开源项目.它们都是在无头浏览器上运行的Rails / Ruby应用程序/测试脚本.本质上,我试图在内部设置类似heroku的环境,并希望在这些正在运行的进程之间进行某种进程隔离.

我首先偶然发现了chroot监狱,然后了解了LXC. LXC似乎可以更好地控制普通的chroot监狱.我有一个nginx前端,我想在隔离的容器中运行webserver应用程序进程(thin / mongrel / webrick).通常我们只是在本地IP地址上启动这些进程,并为它们安装nginx代理.完成这项工作的最佳方法是什么?人们为容器设置静态桥接IP并且nginx指向它吗?如何确保在容器中运行的Web服务器只能由外部主机访问?

关于LXC的文档似乎有点稀疏.指向一些好的教程或HOWTOs的指针将不胜感激.我的目标部署环境是一个Lucid 64位盒子.

附:我不是linux大师.所以,要温柔.

假设您自己的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

然后在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

使用内容创建文件/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

/lxc/ubuntu.fstab with

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

添加到/lxc/ubuntu/etc/rc.local

route add default gw 192.168.1.254

根据您的需要编辑/lxc/ubuntu/etc/resolv.cont.

然后你可以创建你的机器

lxc-create -f /lxc/ubuntu.config -n ubuntu

然后开始

lxc-start -n ubuntu

或停止

lxc-stop -n ubuntu

或者最后毁灭

lxc-destroy -n ubuntu

您的新虚拟机将具有IP 192.168.1.10,并且可以在网络上访问.

相关文章

文章浏览阅读2.3k次,点赞4次,收藏22次。最近安装了CARLA预...
文章浏览阅读6.3k次,点赞5次,收藏15次。在清华镜像中下载U...
文章浏览阅读5k次。linux环境, python3.7.问题描述: 安装...
文章浏览阅读4.2k次,点赞4次,收藏17次。要安装这个 standa...
文章浏览阅读894次,点赞51次,收藏31次。在安卓使用vscode主...