标签: lxc

Proxmox 中的 Docker

我已经使用 Proxmox v4 设置了一个家庭服务器,并且想要运行一个 Docker 容器。我应该怎么做?我应该在 LXC 容器内设置 Docker 还是应该创建一个完整的 VM 并使用最小的操作系统之一,如 Atomic Host / CoreOS / RancherOS?

从这个问题的措辞中可以明显看出,我对容器和 Proxmox 都是新手,所以在回复时请记住这一点。这个家庭项目是我正在做的一件事来纠正这个问题。然而,我对 Linux 或虚拟化并不陌生。谢谢你的帮助!

docker lxc

8
推荐指数
1
解决办法
9157
查看次数

LXD 容器和具有静态 IP 的网络

多年来,我已经进行了一些 Docker 测试,但是对于特定类型的测试,我需要的不仅仅是应用程序容器。所以我转向 LXC/LXD 容器,这很棒。安装 LXD 后,我创建了自己的容器:

>> willem@ubuntu:/$ lxc launch images:centos/7/amd64 thing Creating thing
Starting thing 
>> willem@ubuntu:/$ lxc list
+-------+---------+------------------+------+------------+-----------+ 
| NAME  |  STATE  |       IPV4       | IPV6 |    TYPE    | SNAPSHOTS |
+-------+---------+------------------+------+------------+-----------+ 
| thing | RUNNING | 10.0.3.30 (eth0) |      | PERSISTENT |         0 |
+-------+---------+------------------+------+------------+-----------+
Run Code Online (Sandbox Code Playgroud)

伟大的。只有我似乎对这里的 IP 地址没有任何控制权。我找到了(在 Google 的帮助下并找到了)一个控制文件:

>> root@ubuntu:/# locate lxc.conf 
/etc/init/lxc.conf 
..
/var/log/lxd/thing/lxc.conf
Run Code Online (Sandbox Code Playgroud)

您可以在其中放置(看起来像)静态 IP4 地址。只有在重新启动容器时,主机似乎忘记了我的静态 IP,并从 DHCP 中获取了一个。问题:

  • 这样做的正确方法是什么(我的意思是,最新的 Docker 有一个设置 IP 地址的--ip开关docker run)?

networking linux ubuntu lxc

7
推荐指数
4
解决办法
2万
查看次数

如何检测LXC容器系统是否准备就绪?

我正在尝试启动 LXC 容器,然后在其中运行命令。问题在于,即使容器处于 RUNNING 状态,它也没有完成所有的启动。这会给 /tmp 带来麻烦(我猜,还有其他初始化)。

这可以通过创建容器、启动容器、等待其 RUNNING 状态并执行一些命令的调用序列来说明;这些命令创建一个文件 /tmp/hello,显示一个目录,稍等一下,然后再次显示该目录:

lxc-clone -B overlayfs -s -o vm -n c1 ; lxc-start -n c1 ; lxc-wait -n c1 -s RUNNING ; lxc-attach -n c1 -- su -c "touch /tmp/hello; ls -la /tmp; sleep 5; ls -la /tmp" slave ; lxc-stop -n c1 ; lxc-destroy -n c1

其输出是

Created container c1 as snapshot of vm total 16 drwxrwxrwt 1 root root 4096 May 24 09:37 . drwxr-xr-x 1 root nogroup 4096 May …

boot lxc

5
推荐指数
1
解决办法
1081
查看次数

通过 Btrfs 使用 MySQL 和 LxD

我有一个 Ubuntu 16.04 工作站,带有 ext4 文件系统。

  1. 当使用 LxD 时,我希望拥有快如闪电的快照能力(因为我的图像通常很大)。据我了解,只有当支持文件系统是 CoW 文件系统(例如 Btrfs)时,才能实现这种能力。

(注意:到目前为止,我遇到的 Btrfs 唯一与性能相关的主要警告是建议使用noatimemount 标志。)

  1. 但由于我在该系统上还有一个 MySQL 实例,我不希望看到其性能受到影响(相对于 ext4 文件系统),因此我决定对切换到 Btrfs 支持的 MySQL 时是否存在任何潜在问题进行最后检查。而且,看看我发现了什么

通常最好使用选项挂载 Btrfs 'nodatacow',禁用写时复制,因为当您进行大量随机写入时,COW 会导致碎片、磁盘抖动以及 CPU 和 RAM 峰值。

现在,这似乎是一个真正的阻尼器!

问:有什么方法可以让我同时拥有 Btrfs 的快速快照和高性能 MySQL 实例?

mysql snapshot ext4 btrfs lxc

5
推荐指数
1
解决办法
1967
查看次数

htop 内存使用量与进程列表不相加

我正在使用 lxd 运行多个容器,但在报告内存使用情况时遇到问题: 和 都htop显示free高内存使用情况,但使用内存的进程列表非常短,并且不等于报告的使用情况。

从裸机来看,这就是 htop 显示的内容(按 排序%MEM,用户态线程隐藏): 顶部屏幕

这是顶部(按 %MEM 排序): 顶部屏幕

这是free -mh

              total        used        free      shared  buff/cache   available
Mem:            15G        8.2G        5.5G        576M        1.6G        5.4G
Swap:            9G        297M        9.7G
Run Code Online (Sandbox Code Playgroud)

从 htop 屏幕截图中,我预计使用的总内存约为 2G+(加上 RES 值),而不是 10G+。来自为什么“top”中的内存使用量没有相加?,报告的“实际使用”内存仍然约为 6.6G。

我是否遗漏了什么,显示的内存报告是否连贯?

memory ubuntu htop lxc lxd

5
推荐指数
1
解决办法
2705
查看次数

设置 LXD Container raw.idmap 的语法

我正在按照此处所述执行lxc 容器内安装主机驱动器的过程。在那篇文章中,作者将raw.idmap设置为这样:

lxc config set zesty raw.idmap 'both 1000 1000'
Run Code Online (Sandbox Code Playgroud)

我想按照lxd idmap 文档中的描述自定义 gid 和 uid 的映射。其中显示了一个示例映射,如下所示:

both 1000 1000
uid 50-60 500-510
gid 10000-110000 10000-20000
Run Code Online (Sandbox Code Playgroud)

我正在为实际设置这个语法而苦苦挣扎,因为第一篇文章中的命令似乎不适用于多行配置,我已经尝试在一行中输入所有内容并使用 JSON,但没有运气,因为容器会出现配置错误并且无法启动。

配置它的正确方法是什么?

linux container ubuntu lxc

4
推荐指数
2
解决办法
4709
查看次数

增加 LXD/LXC Btrfs 循环文件存储池大小

我们的生产容器崩溃了,因为它的 LXC 存储池空间不足。

这是dh -h从容器内部:

Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       82G   78G  2.0G  98% /
Run Code Online (Sandbox Code Playgroud)

这是来自主机系统的相同挂载:

/dev/loop0       82G   78G  2.0G  98% /var/lib/lxd/storage-pools/default
Run Code Online (Sandbox Code Playgroud)

我记得一年前当我设置它时,它问我 80GB 是否适合听起来不熟悉的东西,并且因为它没有说“容器磁盘大小”并说其他的东西,我只是想我最好相信默认值选项。现在我知道这磁盘空间限制。我现在怎样才能增加这个限制?

此刻,我只是紧急清理了一些空间。主机实际上有数 TB 的磁盘空间。

PS 很抱歉抱怨,但 LXC 的文档是我见过的最糟糕的文档之一。对于像我这样的用户来说,这没有意义。

PPS 我忘了我实际上使用 LXD,呵呵。我打字lxc做任何事情的事实让我感到困惑。

更新: 直觉上,我认为这个命令可以调整存储池的大小:

# lxc storage set default size 200GB
Run Code Online (Sandbox Code Playgroud)

但它失败了:

Error: The [size] properties cannot be changed for "btrfs" storage pools
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

filesystems btrfs resizing lxc lxd

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

标签 统计

lxc ×7

ubuntu ×3

btrfs ×2

linux ×2

lxd ×2

boot ×1

container ×1

docker ×1

ext4 ×1

filesystems ×1

htop ×1

memory ×1

mysql ×1

networking ×1

resizing ×1

snapshot ×1