标签: lxc

如何为 LXC 来宾配置外部 IP 地址?

我正在探索 Ubuntu 12.04 中的 LXC 功能,我真的很想设置一个这样的网络:

client1:   192.168.56.101/24
lxc-host:  192.168.56.102/24
guest1     192.168.56.201/24
guest2     192.168.56.202/24
guest3     192.166.56.203/24
Run Code Online (Sandbox Code Playgroud)

我只想要一个“扁平”网络,其中来宾可以完全访问 LAN,并且可以从客户端看到。我习惯于使用 libvirt/KVM 桥接网络,如下所述:http : //libvirt.org/formatdomain.html#elementsNICSBridge

在主机上:

# /etc/network/interfaces
auto br0
iface br0 inet static
    address 192.168.56.102
    netmask 255.255.255.0
    broadcast 192.168.56.255
    bridge_ports eth1
Run Code Online (Sandbox Code Playgroud)

第一个来宾的 lxc.conf:

# /var/lib/lxc/guest1/config:
lxc.network.type=veth
lxc.network.link=br0
lxc.network.flags=up
lxc.network.hwaddr=00:16:3e:13:48:4e
lxc.network.ipv4=192.168.56.201/24
Run Code Online (Sandbox Code Playgroud)

看起来192.168.56.201对外界是不可见的,这不是我想要的。似乎我必须做以下事情之一:

1)在host和guest上手动设置路由

2)做些假的...提前在主机上创建虚拟接口,并配置来宾使用它们lxc.network.type=phys。我不知道这是否真的有效。

我专注于 Ubuntu,但 RHEL/Fedora 的答案也很有用....

networking ubuntu lxc

18
推荐指数
2
解决办法
5万
查看次数

非特权容器的优点和缺点是什么?

什么是非特权容器的技术解释非常好。但是,它不适用于普通 PC 用户。是否有一个简单的答案,人们何时以及为什么应该使用非特权容器,以及它们的优点和缺点是什么?

security virtual-machine not-root-user privileges lxc

17
推荐指数
1
解决办法
9411
查看次数

如何使用 systemd 创建用户 cgroup

lxcArch Linux. 以下是基本系统信息:

[chb@conventiont ~]$ uname -a
Linux conventiont 3.17.4-Chb #1 SMP PREEMPT Fri Nov 28 12:39:54 UTC 2014 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

这是一个自定义/编译内核,具有user namespace enabled

[chb@conventiont ~]$ lxc-checkconfig 
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled

--- Control groups ---
Cgroup: enabled
Cgroup clone_children flag: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: …
Run Code Online (Sandbox Code Playgroud)

systemd container cgroups virtualization lxc

16
推荐指数
1
解决办法
2万
查看次数

为什么在 Ubuntu 12.04 上使用 upstart 脚本启动时 docker 容器不启动?

使用运行 Ubuntu 12.04 和 Docker 0.8.1 的 Linode VPS 上的Docker 自动启动说明,指定的容器不会在重新启动时启动。

一旦启动,我就可以

~$ sudo start [service-name]
Run Code Online (Sandbox Code Playgroud)

一切都按计划进行,但我也希望容器在重新启动后重新启动。

教程中的脚本是否不是为处理重启而设计的?

/etc/default/docker 文件包含一行:

DOCKER_OPTS="-r=false"
Run Code Online (Sandbox Code Playgroud)

/etc/init/service-name.conf 直接来自 docker 页面:

description "service description"                                                                                                            
author "me"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
    # Wait for docker to finish starting up first.
    FILE=/var/run/docker.sock
    while [ ! -e $FILE ] ; do
        inotifywait -t 2 -e create $(dirname $FILE)
    done
    /usr/bin/docker start -a db5e61a9afa8
end script
Run Code Online (Sandbox Code Playgroud)

ubuntu upstart lxc

15
推荐指数
1
解决办法
3万
查看次数

跨非特权 lxcontainers 共享 unix 套接字

我有两个非特权容器,我想在它们之间共享一个 unix 套接字。每个容器在主机上都有自己的用户,并具有单独的 subuid 和 subguid 映射。

我尝试在容器中创建组并将它们映射到主机上的一个组。但是,这不起作用。我不想创建额外的用户,以尽可能减少所涉及的用户数量和潜在的安全漏洞,而不会将容器相互暴露。

socket lxc containers

13
推荐指数
1
解决办法
1161
查看次数

本地主机上的 LXC 来宾的快速 X?

如何在 LXC 容器内有效地运行 X 应用程序?

ssh -Y guest
Run Code Online (Sandbox Code Playgroud)

太慢了 - 没有图形加速ssh -Y- 一切都必须使用传统的 X11 协议通过虚拟网络传输。

能够在主机和来宾应用程序之间复制粘贴是可取的,但不是必需的。运行两台 X 服务器,一台用于主机,一台用于来宾,(就我而言)是必不可少的。

我无法从来宾中运行本机 Xorg,因为它抱怨/dev/tty0丢失了,而且我无法mknod在来宾中运行该设备,因为我获得了被拒绝的权限,即使以 root 身份执行也是如此。

linux xorg virtualization lxc

12
推荐指数
1
解决办法
5226
查看次数

网络接口名称带有 at 符号 - 它是什么?

我试图寻找有关为什么网络接口名称会有 at 符号的信息,但到目前为止我得到的结果中有太多的噪音(我缺乏正确的搜索术语)

我在 Ubuntu 主机上有一个 LXC 容器。在容器内我运行并得到:

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    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
9: eth0@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:37:a0:7a brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.0.3.195/24 brd 10.0.3.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fe37:a07a/64 scope link 
       valid_lft …
Run Code Online (Sandbox Code Playgroud)

lxc network-interface

12
推荐指数
1
解决办法
1634
查看次数

Docker/LXC 中的 AppArmor 配置文件

我有一个运行 MySQL 的 Docker 容器 (LXC)。由于 Docker 背后的想法通常是“每个容器运行一个进程”,如果我定义针对 MySQL 二进制文件的 AppArmor 配置文件,它们会被强制执行吗?有没有办法让我对此进行测试?

apparmor lxc docker

11
推荐指数
1
解决办法
6209
查看次数

Linux:有没有方便的方法来执行将其绑定到所选 IP 地址的程序?

在 FreeBSD 4.9 中,只需一个命令即可轻松完成,例如

jail [-u username]  path hostname ip-number command
Run Code Online (Sandbox Code Playgroud)

如果路径是/你像往常一样运行相同的程序,但它的所有网络通信都被限制为仅使用给定的 IP 地址作为源。有时它非常方便。

现在在 Linux 中有 LXC,它看起来与 FreeBSD jail(或 Solaris 的区域)非常相似——你能想出类似的方式来执行程序吗?

linux freebsd ip jails lxc

11
推荐指数
1
解决办法
1599
查看次数

docker - 如何在容器中运行 x 桌面?

我正在尝试将我的 Linux 机器设置为运行多个来宾操作系统,其中一个是 Windows VM,另一个是 Linux 容器。这里的目标是防止我弄乱主机系统,同时可以自由地操作基本操作系统并使用主机硬件。最终,除了在容器中运行我的桌面之外,我还希望运行图形加速模拟等。由于 Docker 内置了非常棒的类似 git 的容器版本控制,因此使用它似乎是一个好主意。也许 libvirt 和 LXC 一样好,但是 docker 的特权模式使得不必为容器配置设备变得更容易。

我已经做了一些研究并已经提出了一些答案,但是我无法将它们放在一起。

LXC 背景

从 LXC 运行 X帮助我了解如何使用(即)配置容器:

lxc.cgroup.devices.allow = c 226:0 rwm

并使用

mknod -m 666 dri/card0 c 226 0

在容器内连接到主机设备。

码头工人

cuda - 使用来自 docker 容器的 GPU,我看到我可以通过 LXC 后端获得相同的设置以在 Docker 中工作。

在我看来,如果 docker 容器在特权模式下运行,那么它可以正常访问 GPU,而无需进行此额外配置。所以,我启动了一个基本系统,安装了图形驱动程序、xorg-server、xorg-xinit 和一个窗口管理器来测试它。

第一次尝试

# startx
Cannot run from a console (or some message like that)
Run Code Online (Sandbox Code Playgroud)

好吧,我以为我在 tty2 上。

# tty
/dev/console
Run Code Online (Sandbox Code Playgroud)

那不是我所期望的。

# chvt 2 …
Run Code Online (Sandbox Code Playgroud)

desktop virtualization lxc docker libcontainer

11
推荐指数
1
解决办法
1万
查看次数