AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[lxc](unix)

Martin Hope
Jonathan Hartley
Asked: 2022-09-28 10:42:58 +0800 CST

在重新启动后保留 resolvectl 更改

  • 1

我正在使用 LXC 容器,并将 CONTAINERNAME.lxd 解析为指定容器的 IP,使用:

sudo resolvectl dns lxdbr0 $bridge_ip
sudo resolvectl domain lxdbr0 '~lxd'

这很好用!但是这些更改不会在主机重新启动后持续存在。

(我已经将“我尝试过的事情”描述为这个问题的答案,它们取得了不同程度的成功。)

我在 Pop!_OS 22.04 上,它基于 Ubuntu 22.04。

我应该如何使这些 resolvectl 更改在重新启动后持续存在?

networking lxc
  • 4 个回答
  • 30 Views
Martin Hope
mprudek
Asked: 2021-12-29 11:34:24 +0800 CST

无法在 Debian 11 Bullseye 上自动启动非特权 LXC 容器

  • 0

lxc-autostart不会在 Debian 11 Bullseye 中启动非特权容器。

Debian 11 Bullseye 中非特权容器的启动 通过使用代替解决了这个答案,但我在使用.lxc-unpriv-startlxc-startlxc-autostart

debian lxc
  • 2 个回答
  • 551 Views
Martin Hope
Jake
Asked: 2019-04-18 07:43:57 +0800 CST

LXC 如何设置它的根挂载点?

  • 3

我正在尝试在 Ubuntu 中使用挂载命名空间。到目前为止,我可以使用以下命令创建一个空的挂载命名空间:

# mkdir test
# unshare --mount
# mount none test -t tmpfs
# cd test
# pivot_root . . 
# cd / <--- test becomes /

当我检查LXCUbuntu 容器时,该mount命令显示以下内容:

在此处输入图像描述

由于挂载命名空间最初获取了挂载点的副本,因此我假设/dev/sda1容器内部是全局的/dev/sda1(因为/dev/sda1一旦启动,容器内部就没有了),但/容器内部的内容对应于它的 rootfs。熟悉 LXC 的人能否解释一下 LXCpivot_root在容器内执行之前会执行哪些挂载操作?

mount lxc
  • 1 个回答
  • 1238 Views
Martin Hope
munchkin
Asked: 2019-03-09 03:36:06 +0800 CST

如何找到所有已在 Linux 中配置的接口,包括容器的接口?

  • 9

我知道你可以通过做来显示界面ip a show。那只显示主机可以看到的接口,但容器配置的虚拟接口不会出现在这个列表中。我也尝试过使用ip netns,它们也没有出现。我应该重新编译另一个版本iproute2吗?在/proc/net/fb_trie中,您可以看到本地/广播地址,我假设,作为转发数据库的用途。

我在哪里可以找到这些信息或列出所有接口(包括容器)的命令?

要对此进行测试,请启动一个容器。就我而言,它是 snap 上的 lxc 容器。做一个ip a或ip l。它将显示主机的视图,但不显示容器配置的界面。我正在通过grepping ,因为容器只是 cgrouped 进程,但除了和 arp 条目procfs之外我没有得到任何东西。fib_trie我认为这可能是由于 netns 命名空间混淆,但ip netns也没有显示任何内容。

您可以使用conntrack -L显示所有已建立的传入和传出连接,因为 lxd 需要连接跟踪数据包的转发,但我想列出系统上配置的所有 IP 地址,就像我能做到的那样告诉使用netstator lsof。

linux lxc
  • 2 个回答
  • 2738 Views
Martin Hope
l0b0
Asked: 2019-03-08 19:14:48 +0800 CST

如何配置非特权 Linux 容器?

  • 2

我正在尝试设置非特权 LXC 容器,但每次都失败。我想我已经遵循了指南的每一个相关步骤:

  • 普通用户可以创建非特权容器:

    $ sysctl kernel.unprivileged_userns_clone
    kernel.unprivileged_userns_clone = 1
    
  • 控制组 PAM 模块已启用:

    $ grep -F pam_cgfs.so /etc/pam.d/system-login
    session optional pam_cgfs.so -c freezer,memory,name=systemd,unified
    
  • 设置了 UID 和 GID 映射:

    $ cat /etc/lxc/default.conf
    lxc.idmap = u 0 100000 65536
    lxc.idmap = g 0 100000 65536
    lxc.net.0.type = veth
    lxc.net.0.link = lxcbr0
    lxc.net.0.flags = up
    lxc.net.0.hwaddr = 00:16:3e:xx:xx:xx
    $ cat /etc/subuid
    root:100000:65536
    $ cat /etc/subgid
    root:100000:65536
    
  • 网络设置:

    $ grep --invert-match --regexp='^#' --regexp='^$' /etc/default/lxc-net
    USE_LXC_BRIDGE="true"
    LXC_BRIDGE="lxcbr0"
    LXC_ADDR="10.0.3.1"
    LXC_NETMASK="255.255.255.0"
    LXC_NETWORK="10.0.3.0/24"
    LXC_DHCP_RANGE="10.0.3.2,10.0.3.254"
    LXC_DHCP_MAX="253"
    
  • 服务看起来不错:

    $ systemctl status --lines=0 --no-pager lxc.service lxc-net.service 
    ● lxc.service - LXC Container Initialization and Autoboot Code
       Loaded: loaded (/usr/lib/systemd/system/lxc.service; disabled; vendor preset: disabled)
       Active: active (exited) since Fri 2019-03-08 15:31:47 NZDT; 40min ago
         Docs: man:lxc-autostart
               man:lxc
     Main PID: 4147 (code=exited, status=0/SUCCESS)
        Tasks: 0 (limit: 4915)
       Memory: 0B
       CGroup: /system.slice/lxc.service
    
    ● lxc-net.service - LXC network bridge setup
       Loaded: loaded (/usr/lib/systemd/system/lxc-net.service; enabled; vendor preset: disabled)
       Active: active (exited) since Fri 2019-03-08 15:31:45 NZDT; 40min ago
     Main PID: 4099 (code=exited, status=0/SUCCESS)
        Tasks: 1 (limit: 4915)
       Memory: 8.4M
       CGroup: /system.slice/lxc-net.service
               └─4121 dnsmasq -u dnsmasq --strict-order --bind-interfaces --pid-file=/run/lxc/dnsm…
    
  • 软件包是最新的,我刚刚重新启动。

即便如此,我也无法创建容器:

$ lxc-create -n test -t download
lxc-create: test: parse.c: lxc_file_for_each_line_mmap: 100 No such file or directory - Failed to open file "/home/user/.config/lxc/default.conf"
lxc-create: test: conf.c: chown_mapped_root: 3179 No uid mapping for container root
lxc-create: test: lxccontainer.c: do_storage_create: 1310 Error chowning "/home/user/.local/share/lxc/test/rootfs" to container root
lxc-create: test: conf.c: suggest_default_idmap: 4801 You do not have subuids or subgids allocated
lxc-create: test: conf.c: suggest_default_idmap: 4802 Unprivileged containers require subuids and subgids
lxc-create: test: lxccontainer.c: do_lxcapi_create: 1891 Failed to create (none) storage for test
lxc-create: test: tools/lxc_create.c: main: 327 Failed to create container test

这个设置有什么明显的问题吗?链接文章中没有任何地方提到 ~/.config/lxc/default.conf,我不明白为什么它说我没有分配 subuids 和 subgids。

附加信息:

  • 以 root 身份运行lxc-create是可行的,但这显然是关于以普通用户身份创建容器。
  • cp /etc/lxc/default.conf ~/.config/lxc/default.conf摆脱了对配置文件的抱怨,但结果却是这样的消息:

    lxc-create:playtime:conf.c:chown_mapped_root:3279 lxc-usernsexec 失败:没有这样的文件或目录 - 无法打开 tty 没有这样的文件或目录 - 无法打开 tt

arch-linux lxc
  • 3 个回答
  • 4352 Views
Martin Hope
Ricardo Cavalheiro
Asked: 2019-02-08 04:16:03 +0800 CST

具有网络接口但没有主机的容器,如何将 eth0 暴露给容器

  • 2

我正在构建一个带有只读 rootfs 的系统。

此 rootfs 在主机和创建的容器之间共享。

主机不能有任何与网络相关的服务或文件,这意味着我无法桥接主机连接。

我目前正在使用 USB 网络适配器。

如何仅在容器内启动此设备和网络服务?

任何容器都可以为 /etc /var 等拥有新的 RW 挂载点,这样,所需的任何文件都可以在另一个分区中访问。但是主机仍然是 RO 并且文件有限。

lxc
  • 2 个回答
  • 1804 Views
Martin Hope
x-yuri
Asked: 2018-12-28 08:55:51 +0800 CST

LXC 容器的源 NAT 规则

  • 0

我刚刚注意到MASQUERADE iptables添加的规则lxc有! -d部分:

iptables -t nat -A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE

我的猜测是,-s 10.0.3.0/24 -d 10.0.3.0/24只有在将数据从一个容器发送到另一个容器时才能观察到(ping, ssh,你的名字)。而省略! -d部分只会影响性能。到未知的程度。我对吗?

iptables lxc
  • 1 个回答
  • 606 Views
Martin Hope
AnyDev
Asked: 2018-09-12 07:18:41 +0800 CST

如何在 LXC 下仅将 ntpd 作为服务器运行,而不调整本地机器时间

  • 2

我需要将设备指向我在 LXC 中运行的 CentOS-7 服务器同步它们的时钟。在我试图ntpd从ntp包中使用的服务器上,但对其他产品开放。这个问题是关于在服务器上设置ntpd或等效的。

到目前为止,我试过这个/etc/ntp.conf

driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery

restrict 127.0.0.1
restrict ::1

server 127.127.1.1 iburst
fudge  127.127.1.1 stratum 8

disable monitor

这里有两个问题。

  1. ntpd记录后终止cap_set_proc() failed to drop root privileges: Operation not permitted
  2. ntpd正在尝试调整当地时间。它失败了,但它会尝试。如果这是唯一的问题并且我在日志中有错误消息,我可以接受。

/var/log/messages尝试启动 ntpd 导致的完整输出:

systemd: Starting Network Time Service...
ntpd[20154]: ntpd [email protected] Wed Apr 12 21:24:06 UTC 2017 (1)
ntpd[20155]: proto: precision = 0.120 usec
ntpd[20155]: ntp_adjtime() failed: Operation not permitted
systemd: Started Network Time Service.
ntpd[20155]: 0.0.0.0 c01d 0d kern kernel time sync enabled
ntpd[20155]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
ntpd[20155]: Listen and drop on 1 v6wildcard :: UDP 123
ntpd[20155]: Listen normally on 2 lo 127.0.0.1 UDP 123
ntpd[20155]: Listen normally on 3 eth0 hidden:A.B.C.D UDP 123
ntpd[20155]: Listen normally on 4 tun0 hidden:E.F.G.H UDP 123
ntpd[20155]: Listening on routing socket on fd #21 for interface updates
ntpd[20155]: 0.0.0.0 c016 06 restart
ntpd[20155]: ntp_adjtime() failed: Operation not permitted
ntpd[20155]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM
ntpd[20155]: 0.0.0.0 c011 01 freq_not_set
ntpd[20155]: cap_set_proc() failed to drop root privileges: Operation not permitted
systemd: ntpd.service: main process exited, code=exited, status=255/n/a
systemd: Unit ntpd.service entered failed state.
systemd: ntpd.service failed.
ntp lxc
  • 3 个回答
  • 3640 Views
Martin Hope
grimmjow_sms
Asked: 2018-07-26 14:11:13 +0800 CST

Ansible:如何解析库存来源

  • 6

我正在关注我从 Packt 获得的 Ansible 教程,我已经创建了 3 个 Ubuntu 容器 (lxc) 并让它们启动并运行。我也可以登录到他们每个人。

我已经通过以下方式下载了 Ansible:git clone ansible-git-url然后获取了它。

我的工作设置如下: /home/myuser/code在这里我有 2 个文件夹:(ansible整个 git repo)ansible_course,我有 2 个文件:ansible.cfg和inventory.

inventory包含以下内容:

[allservers]
192.168.122.117 
192.168.122.146
192.168.122.14

[web]
192.168.122.146
192.168.122.14

[database]
192.168.122.117

并ansible.cfg包含:

[root@localhost ansible_course]# cat ansible.cfg
[defaults]
host_key_checking = False

然后从这条路径:/home/myuser/code/ansible_course我尝试执行以下操作:

$ ansible 192.168.122.117 -m ping -u root

教程中的那个人就是这样做的,他从 获得了成功响应ping,但我收到以下错误消息:

[WARNING]: Unable to parse /etc/ansible/hosts as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
[WARNING]: Could not match supplied host pattern, ignoring: 192.168.122.117

在教程中,他从未说过我需要做一些特别的事情来提供inventory源代码,他只是说我们需要使用inventory我们拥有的 Linux 容器的 IP 地址创建一个文件。

我的意思是,他没有说我们需要执行命令来设置它。

ansible lxc
  • 2 个回答
  • 30897 Views
Martin Hope
Roberto
Asked: 2018-04-16 12:54:04 +0800 CST

在 Proxmox VE 中将原始图像格式化为 XFS

  • 0

我有一个带有 Proxmox VE 5.1 的系统和一个带有 Fedora 27 的 LXC 容器。

容器有 2 个磁盘(raw格式化),rootfs 和一个额外的挂载点,它们都在 ext4 中,我想格式化到xfs第二个挂载点。

我尝试使用典型的mkfs.xfs但我不知道 linux 块设备存储在哪里,它不在 /dev 目录中。

mount命令显示:

/var/lib/vz/images/111/vm-111-disk-1.raw on / type ext4 (rw,relatime,data=ordered)
/var/lib/vz/images/111/vm-111-disk-2.raw on /var/db_data type ext4 (rw,relatime,data=ordered)

节目df -h:

/dev/loop6       20G  1.1G   18G   6% /
/dev/loop7      9.8G   37M  9.3G   1% /var/db_data

但是容器磁盘中不存在“loopX”设备。

我在 proxmox 论坛中搜索过没有运气,所以我不知道这是否是 proxmox 限制......

lxc xfs
  • 2 个回答
  • 1255 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve