- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
事实:
1480
2088
3.10.0-1062.1.2.el7.x86_64
1.4.4
/tmp
的文件系统是xfs
capsh
输出是相同的,除了 uid/username/etc/sub{u,g}id
文件中有相同的条目$HOME/.config/containers/storage.conf
是默认值,两者除了 uid 外是相同的。 storage.conf
在下面供引用。我编写了以下 shell 脚本来演示两者运行的环境有多么相似:
#!/bin/sh
for i in 1480 2088; do
sudo chroot --userspec "$i":10 / env -i /bin/sh <<EOF
echo -------------- $i ----------------
/usr/sbin/capsh --print
grep "$i" /etc/subuid /etc/subgid
mkdir /tmp/"$i"
HOME=/tmp/"$i"
export HOME
podman --root=/tmp/"$i" info > /tmp/podman."$i"
podman run --rm --root=/tmp/"$i" docker.io/library/busybox printf "\tCOMPLETE\n"
echo -----------END $i END-------------
EOF
sudo rm -rf /tmp/"$i"
done
这是脚本的输出:
$ sh /tmp/podman-fail.sh
[sudo] password for functional:
-------------- 1480 ----------------
Current: =
Bounding set =cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_linux_immutable,cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_ipc_lock,cap_ipc_owner,cap_sys_module,cap_sys_rawio,cap_sys_chroot,cap_sys_ptrace,cap_sys_pacct,cap_sys_admin,cap_sys_boot,cap_sys_nice,cap_sys_resource,cap_sys_time,cap_sys_tty_config,cap_mknod,cap_lease,cap_audit_write,cap_audit_control,cap_setfcap,cap_mac_override,cap_mac_admin,cap_syslog,35,36
Securebits: 00/0x0/1'b0
secure-noroot: no (unlocked)
secure-no-suid-fixup: no (unlocked)
secure-keep-caps: no (unlocked)
uid=1480(functional)
gid=10(wheel)
groups=0(root)
/etc/subuid:1480:100000:65536
/etc/subgid:1480:100000:65536
Trying to pull docker.io/library/busybox...Getting image source signatures
Copying blob 7c9d20b9b6cd done
Copying config 19485c79a9 done
Writing manifest to image destination
Storing signatures
ERRO[0003] could not find slirp4netns, the network namespace won't be configured: exec: "slirp4netns": executable file not found in $PATH
COMPLETE
-----------END 1480 END-------------
-------------- 2088 ----------------
Current: =
Bounding set =cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_linux_immutable,cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_ipc_lock,cap_ipc_owner,cap_sys_module,cap_sys_rawio,cap_sys_chroot,cap_sys_ptrace,cap_sys_pacct,cap_sys_admin,cap_sys_boot,cap_sys_nice,cap_sys_resource,cap_sys_time,cap_sys_tty_config,cap_mknod,cap_lease,cap_audit_write,cap_audit_control,cap_setfcap,cap_mac_override,cap_mac_admin,cap_syslog,35,36
Securebits: 00/0x0/1'b0
secure-noroot: no (unlocked)
secure-no-suid-fixup: no (unlocked)
secure-keep-caps: no (unlocked)
uid=2088(broken)
gid=10(wheel)
groups=0(root)
/etc/subuid:2088:100000:65536
/etc/subgid:2088:100000:65536
Trying to pull docker.io/library/busybox...Getting image source signatures
Copying blob 7c9d20b9b6cd done
Copying config 19485c79a9 done
Writing manifest to image destination
Storing signatures
ERRO[0003] Error while applying layer: ApplyLayer exit status 1 stdout: stderr: there might not be enough IDs available in the namespace (requested 65534:65534 for /home): lchown /home: invalid argument
ERRO[0003] Error pulling image ref //busybox:latest: Error committing the finished image: error adding layer with blob "sha256:7c9d20b9b6cda1c58bc4f9d6c401386786f584437abbe87e58910f8a9a15386b": ApplyLayer exit status 1 stdout: stderr: there might not be enough IDs available in the namespace (requested 65534:65534 for /home): lchown /home: invalid argument
Failed
Error: unable to pull docker.io/library/busybox: unable to pull image: Error committing the finished image: error adding layer with blob "sha256:7c9d20b9b6cda1c58bc4f9d6c401386786f584437abbe87e58910f8a9a15386b": ApplyLayer exit status 1 stdout: stderr: there might not be enough IDs available in the namespace (requested 65534:65534 for /home): lchown /home: invalid argument
这是 1480
uid 的 storage.conf
。除了 s/1480/2088/
之外,它是相同的:
[storage]
driver = "vfs"
runroot = "/run/user/1480"
graphroot = "/tmp/1480/.local/share/containers/storage"
[storage.options]
size = ""
remap-uids = ""
remap-gids = ""
remap-user = ""
remap-group = ""
ostree_repo = ""
skip_mount_home = ""
mount_program = ""
mountopt = ""
[storage.options.thinpool]
autoextend_percent = ""
autoextend_threshold = ""
basesize = ""
blocksize = ""
directlvm_device = ""
directlvm_device_force = ""
fs = ""
log_level = ""
min_free_space = ""
mkfsarg = ""
mountopt = ""
use_deferred_deletion = ""
use_deferred_removal = ""
xfs_nospace_max_retries = ""
您可以看到用户的两个 podman info
输出之间基本上没有区别:
$ diff -u /tmp/podman.1480 /tmp/podman.2088
--- /tmp/podman.1480 2019-10-17 22:41:21.991573733 -0400
+++ /tmp/podman.2088 2019-10-17 22:41:26.182584536 -0400
@@ -7,7 +7,7 @@
Distribution:
distribution: '"centos"'
version: "7"
- MemFree: 45654056960
+ MemFree: 45652697088
MemTotal: 67306323968
OCIRuntime:
package: containerd.io-1.2.6-3.3.el7.x86_64
@@ -24,7 +24,7 @@
kernel: 3.10.0-1062.1.2.el7.x86_64
os: linux
rootless: true
- uptime: 30h 17m 50.23s (Approximately 1.25 days)
+ uptime: 30h 17m 54.42s (Approximately 1.25 days)
registries:
blocked: null
insecure: null
@@ -35,14 +35,14 @@
- quay.io
- registry.centos.org
store:
- ConfigFile: /tmp/1480/.config/containers/storage.conf
+ ConfigFile: /tmp/2088/.config/containers/storage.conf
ContainerStore:
number: 0
GraphDriverName: vfs
GraphOptions: null
- GraphRoot: /tmp/1480
+ GraphRoot: /tmp/2088
GraphStatus: {}
ImageStore:
number: 0
- RunRoot: /run/user/1480
- VolumePath: /tmp/1480/volumes
+ RunRoot: /run/user/2088
+ VolumePath: /tmp/2088/volumes
我不相信有一个 if (2088 == uid) { abort();
或 podman 源代码中某处的类似废话。我错过了什么?
最佳答案
podman system migrate
是否为您修复了命名空间中可能没有足够可用的 ID
?
关于centos - 为什么 UID 不同的 Podman 报 "Not enough IDs available in namespace"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58443334/
我正在运行一些应用程序,其中应用程序必须知道它在 PODMAN 内运行而无需任何额外的环境变量,但容器内的 podman 配置必须提供详细信息而无需任何用户交互。 截至目前,我正在使用 cat /pr
当我做类似 podman rmi d61259d8f7a7 -f 的事情时它失败并显示一条消息:Error: unable to delete "vvvvvvvvvvvv" (cannot be fo
我的主目录中几乎没有剩余的磁盘空间,但是 我在目录/scratch/tmpexperiment 中有很多磁盘空间。该目录现在是空的。 我想试试命令 podman和 buildah (只是为了实验和学习
我正在尝试在 Red Hat Enterprise Linux 8 (CentoOS 8) 虚拟机中设置构建服务器。 我通过运行 sudo dnf install -y @container-tool
一个非 root 用户一直在尝试运行 podman 和 buildah 命令,但现在只想重置所有内容恢复到开始实验前的状态(即所有容器镜像和容器应该连同 buildah 和 podman 配置一起删除
我在 RHEL8 上运行 podman 2.0.5,我对使用 sudo 与不使用 sudo 调用命令时它的工作原理感到困惑。特别令人困惑的是当我运行端口映射并试图通过主机公开端口时。使用 sudo p
有没有办法在 Podman 中运行 Podman,类似于在 Docker 中运行 Docker 的方式? 这是我的 Dockerfile 的一个片段,它强烈基于 another question :
我对firewalld、podman 和UDP/Multicast 越来越着迷。当我看到 UDP 数据包到达 podman 时;使用 tcpdump 命令确认。看来我无法配置使用名为 knx_mult
我正在 MacOS Catalina 10.15.7 中安装 podman: ~/source/dabai/microservice/soa-illidan-hub on feature/card
我正在尝试使用 podman 桌面替换 docker 桌面。当我安装这个podman桌面并打开它时,它一直处于初始化状态。我不知道它有什么问题。有人遇到过同样的问题吗? 我想安装和使用 podman
我想要完成的是连接到安装在主机系统上的数据库。现在有一个similar question already for docker ,但我无法让它与 Podman 一起工作,我想是因为网络在这里的工作方式
是否可以为已经运行的 pod 额外公开端口? 如果我创建一个新的 pod,我会为它们提供 podman pod create ... -p 8080:80 . 但是,我不想扔掉我的 pod,只需修改它
我想知道是否可以运行一个 rootless podman 容器在容器内启用 systemd(不要与控制容器本身的 systemd 服务混淆)在主机系统级别!)?如果是,我需要什么? 这是一个简单的 D
是否有可能使用 podman 更改容器重启策略?我们可以在创建容器时设置策略 podman run --restart always ,但是创建容器时如何更改它? 使用 docker 我们有 dock
我的服务器在 podman 中运行 gitlab。 我想要 gitlab 连接子域。 测试命令 podman start gitlab-ce --VIRTUAL-HOST=test.example.c
对于 docker,这可以通过在容器内安装 docker.sock 来实现。 但是由于podman中没有守护进程。 docker.sock 的替代品是什么? 我通常想检查主机上显示的 podman 镜
我正在尝试浏览一个在 docker/podman 容器实例中启动应用程序的教程。 我尝试使用 -p port:port 和 --expose port 但似乎都不起作用。 我已使用 ss -an 确保
我正在尝试浏览一个在 docker/podman 容器实例中启动应用程序的教程。 我尝试使用 -p port:port 和 --expose port 但似乎都不起作用。 我已使用 ss -an 确保
尝试这个命令 podman login -u xxx@xxx.com -p XXX@XXX_XXXXX -v docker.io
我正在使用 podman 在 CentOS 上运行虚拟环境。当我使用 podman run 命令的 --net 选项时,出现错误。 [user@server ~]$ podman run --net
我是一名优秀的程序员,十分优秀!