Articles of LXC

有没有一种方法可以在lxcconfiguration中为接口指定名称服务器?

我正在尝试使LXC容器使用静态IP地址。 为此我指定 lxc.network.ipv4 = 10.0.3.3 lxc.network.ipv4.gateway = 10.0.3.1 在lxcconfiguration文件中。 我只在容器中的/etc/network/interfaces中有loopback接口。 而且大部分工作。 除了域名parsing。 有没有办法做类似于/etc/network/interfaces中的dns-nameservers节在lxcconfiguration文件中做的事情? 现在我正在考虑移动容器内的networking设置。

LXC和端口重叠

我在Google上进行了大量search,并浏览了我能在Server Fault上find的内容,但找不到任何解决方法。 我有一个运行LXC容器的服务器(现在两个,都是Ubuntu)。 LXCnetworking桥接(10.0.3.0/24),DHCP服务器为10.0.3.1,我使用该networking的两个IP:10.0.3.2(容器1 [CN1])和10.0.3.3 (容器2 [CN2])。 我在Apache上设置了Apache,并且在DNS上为我的公有IP(web1 – > CN1和web2 – > CN2)设置了一个子域名。 子域名可以正确parsing,但这里是问题出现的地方。 根据我在iptables中首先使用哪个规则确定哪个容器被网页命中。 因此,如果我有外部端口80首先命中CN1,那么显示该index.html文件,如果首先为CN2设置80,那么index.html文件显示。 我想我要做的就是设置Apache服务器在不同的端口上侦听,所以我设置CN1在801和CN2上侦听802,然后设置iptables将路由外部端口80路由到这两个端口,但同样的问题仍然存在。 我的最终目标是让web1和web2显示各自的index.html文件,而不指定特定的外部端口(即:IP:81-> CN1和IP:82-> CN2)。 只有其他的东西我可以想到的是在主机上设置一个代理(即:nginx),并根据请求的(子)域请求代理请求,但我宁愿不这样做,如果可能的话。 iptables规则: NAT表 root @ SKYNet:〜#iptables -t nat -L 连锁PREROUTING(政策接受) 目标人select源目的地 DNAT tcp – 在任何地方tcp dpt:http到:10.0.3.2:801 DNAT tcp – 在任何地方tcp dpt:http到:10.0.3.3:802 连锁input(政策接受) 目标人select源目的地 链式输出(策略ACCEPT) 目标人select源目的地 连锁POSTROUTING(政策接受) 目标人select源目的地 MASQUERADE全部 – 10.0.3.0/24任何地方 默认表 root @ SKYNet:〜#iptables […]

在LXC容器中,Vsftpd在被动模式下不工作

我是Docker的初学者,在Debian中有vsftpd,在vsftpd中configuration被动模式: pasv_enable=YES pasv_min_port=65000 pasv_max_port=65000 pasv_address=192.168.1.31 我用wireshark显示服务器响应与被动端口65000,但与被动IP 0.0.0.0,我不明白为什么如果我configuration被动IP。 当我运行docker我绑定端口21和65000(并在Dockerfile中我公开21和65000)和连接在端口21和主动模式是好的,但我需要也使用被动模式。 在wireshark我显示它: 227 Entering Passive Mode (0,0,0,0,253,232). Passive IP address: 0.0.0.0 (0.0.0.0) Passive port: 65000 Passive IP NAT: True Dockerfile: FROM debian:jessie RUN apt-get update RUN apt-get dist-upgrade -y RUN apt-get install -y -q –no-install-recommends vsftpd RUN apt-get clean RUN echo "local_enable=YES" >> /etc/vsftpd.conf RUN echo "chroot_local_user=YES" >> […]

服务apache2重新启动导致“错误:设备上没有剩余空间”

如果我做 me@server:/home/me# service apache2 restart 在我的LXC-VPS(节点服务器不是在重负载下)我越来越 Error: No space left on device df -h告诉我有足够的空间 /dev/loop1 394G 72G 303G 20% / none 100K 0 100K 0% /dev cgroup 12K 0 12K 0% /sys/fs/cgroup tmpfs 63G 0 63G 0% /sys/fs/cgroup/cgmanager tmpfs 63G 0 63G 0% /dev/shm tmpfs 63G 903M 63G 2% /run tmpfs 5,0M 0 5,0M 0% […]

升级到Debian Jessie后MySQL不启动

我有一台带有几个OpenVZ容器的Proxmox 3.4服务器。 主机和所有客人正在运行Debian 7 x64。 现在我想用Proxmox 4(基于Debian 8)将旧的设置迁移到新的服务器上。 我将多个OpenVZ容器转移到新环境中,并成功导入。 现在我们来解决这个问题:在升级到Debian 8之后,大多数mysqld都不会再启动了。 安装程序向我展示了my.cnf中的更改,因此我使用了包维护者版本。 一台机器仍然启动MySQL,其他一些不configuration,虽然configuration是相同的。 mysql-error-log不显示任何内容,也不显示syslog。 '/etc/init.d/mysql'中的启动脚本和'/etc/mysql/my.cnf'中的configuration在机器上是相同的。 root@web2:~# service mysql restart Job for mysql.service canceled. 直接启动mysqld工作: root@web2:~# mysqld_safe or root@web2:~# /usr/sbin/mysqld –basedir=/usr –datadir=/var/lib/mysql –plugin-dir=/usr/lib/mysql/plugin –user=mysql –log-error=/var/log/mysql/error.log –pid-file=/var/run/mysqld/mysqld.pid –socket=/var/run/mysqld/mysqld.sock –port=3306 有人可以给我一个关于如何解决这个启动或服务问题的提示吗? 任何帮助或暗示在哪里search赞赏。

Amazon EC2 / VPC LXC Bridge无法正常工作

在我喜欢将LXC容器托pipe为一种虚拟服务器的AWS EC2实例上。 我创build了一个只包含eth0的桥(br0),并给了我的VPCs子网的私有IP地址。 我重新configurationLXC不使用lxcbr0作为桥梁,但我的br0设备。 当我添加一个新的容器并为其分配一个IP地址的VPC子网时,我可以从lxc主机到达容器。 我也可以从容器内到达lxc主机。 但是,尽pipe在同一个子网中,其他地址仍然无法到达。 桥接configuration : auto br0 iface br0 inet static bridge_ports eth0 bridge_fd 2 bridge_stp off address 10.8.0.11 netmask 255.255.255.0 network 10.8.0.0 broadcast 10.8.0.255 gateway 10.8.0.1 dns-nameservers 8.8.8.8 8.8.4.4 VPC NIC设置为“禁用源/目标检查” ip_forwarding设置为1 没有iptables规则存在 eth0设置为混杂模式(ip link set eth0 promisc on) lxc容器正在与我的桥正确关联 在仅有硬件的环境中,以及在VirtualBox环境中,此设置工作。 但是,在AWS上不行。

veth,macvlan还是别的?

我不了解lxcnetworking的模式。 我想有4位嘉宾:apache1,apache2,数据库和frontdoor frontdoor是一个决定使用哪个apache的鱿鱼 它完全适用于虚拟服务器,当所有的客人都有一个虚拟接口(与networking隔离),前端有两个接口真正的eth0和虚拟 现在我迁移到lxc,而不是假人,我使用桥(在主机上)和mode = veth(在客人上) 我不高兴看到ifconfig中有四个vethLIJG3f,但让我们看看它的好。 问题是,我不能去鱿鱼。 我试图iptables -t NAT -A PREROUTING -p tcp -dport 80 -j DNAT -to-dest 172.16.0.2但它根本不起作用。 我不知道是否应该改变别的东西?

在Linux中激活cgroups需要什么

我有一个Debian挤压内核(linux-image-2.6.32-5-openvz-amd64),根据Doku应该支持cgroups。 当我查看内核configuration时,它确实(或者需要其他一些内核configuration?) # zgrep -i cgroup /boot/config-2.6.32-5-openvz-amd64 # CONFIG_CGROUP_SCHED is not set CONFIG_CGROUPS=y # CONFIG_CGROUP_DEBUG is not set CONFIG_CGROUP_DEVICE=y CONFIG_BLK_CGROUP=y # CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_NET_CLS_CGROUP=y 而且,根据http://wiki.debian.org/LXC ,内核参数cgroup_enable = memory可能是必要的。 我用它开始了内核: # cat /proc/cmdline BOOT_IMAGE=/boot/vmlinuz-2.6.32-5-openvz-amd64 root=UUID=6332fe39-7eaa-4519-b6c1-e05808284586 ro cgroup_enable=memory quiet console=ttyS0,57600n8 但是,系统仍然没有cgroup的支持! cgroup文件系统无法挂载,因为文件系统types甚至不知道系统: # mount -t cgroup none /cgroup mount: unknown filesystem type 'cgroup' 和: # […]

如何将公共ipv6地址路由到私有lxc容器地址?

我有一个公共ipv6地址池,我想用来公开lxc容器。 在主机上,我创build了一个macvlan接口eth0-macvlan并绑定了一个公共地址2600:3c01:e000:83::1/64 。 然后,我把容器eth1绑定到同一个子网2600:3c01:e000:83::11/64地址上2600:3c01:e000:83::11/64我可以ping主机上的容器地址,但不能上网。 我是否需要添加路线? 我可能会做这个完全错误的。 eth0 Link encap:Ethernet HWaddr f2:3c:91:6e:25:63 inet addr:173.230.156.218 Bcast:173.230.156.255 Mask:255.255.255.0 inet6 addr: fe80::f03c:91ff:fe6e:2563/64 Scope:Link inet6 addr: 2600:3c01::f03c:91ff:fe6e:2563/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:955129 errors:0 dropped:0 overruns:0 frame:0 TX packets:547825 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1369203060 (1.3 GB) TX bytes:59723654 (59.7 MB) eth0-macvlan Link encap:Ethernet HWaddr […]

通过“一个MAC”安全locking交换机端口将VirtualBox的机器连接到networking的正确方法

比如说,我们需要将LXC容器(LXC)或者Virtualbox虚拟机(VBM)公开到自己的IP地址(在附加分配networking – ADD-net内),这个IP地址是通过主机路由的。 在SOHO环境中,在主要主机的主networking接口(如eth0)上使用基于网桥的LXC / VBM是相当不错的,但是如果交换机端口被安全locking到只有一个MAC-由于托pipe方的政策,地址。 什么是完成它的正确方法? 我设法通过创build人工桥接接口(br0)来完成这一任务,该接口被分配了一个ADD-net的IP,然后将LXC / VBM的以太网端口连接到br0。 内部LXC / VBM路由设置为使用br0的IP作为默认网关。