标签: podman

使用 Podman 连接到 VPN

有这个Dockerfile

FROM fedora:30

ENV LANG C.UTF-8

RUN dnf upgrade -y \
    && dnf install -y \
        openssh-clients \
        openvpn \
        slirp4netns \
    && dnf clean all

CMD ["openvpn", "--config", "/vpn/ovpn.config", "--auth-user-pass", "/vpn/ovpn.auth"]
Run Code Online (Sandbox Code Playgroud)

使用以下方法构建图像:

podman build -t peque/vpn .
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用(注意$(pwd),存储 VPN 配置和凭据的位置)运行它:

podman run -v $(pwd):/vpn:Z --cap-add=NET_ADMIN --device=/dev/net/tun -it peque/vpn
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ERROR: Cannot open TUN/TAP dev /dev/net/tun: Permission denied (errno=13)
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何想法?如果有帮助,我不介意更改基本图像(即:更改为 Alpine 或其他任何内容,只要它允许我openvpn用于连接)。

系统信息

使用1.4.4带有内核的Podman (无根)和 Fedora 30 发行版5.1.19

/dev/net/tun 权限 …

dockerfile podman

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

使用 Podman 对 Google Container Registry 进行身份验证

Google Container Registry文档为使用 Docker 对其进行身份验证提供了很好的帮助。有没有办法对Podman做同样的事情?谷歌文档提到访问令牌作为一种方法。也许那可以奏效。如果有人对此有任何建议或经验,我将非常感谢您的帮助

google-cloud-platform google-container-registry podman

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

Podman 缺少健康检查

我有一个基于健康检查图像的图像。就我而言,它是 oracle 数据库映像container-registry.oracle.com/database/express:21.3.0-xe

但是,当我使用 podman 构建映像时,它不再包含应从基础映像继承的运行状况检查。

当您查看图像时,您可以看到该图层podman history(见下文)。但是当您从此映像创建容器时,podman 和 docker 都不会显示健康状态。

奇怪的是,当使用 docker而不是 podman构建映像时,它会按预期工作。我希望无论是由 podman 还是 docker 构建,都没有什么区别。

$ podman history bebfa0c3dc0f
ID            CREATED        CREATED BY                                     SIZE        COMMENT
bebfa0c3dc0f  44 hours ago   /bin/sh -c #(nop) COPY dir:312dcb9c3445e73...  131 kB      FROM my-image
...
<missing>     9 months ago   HEALTHCHECK &{["CMD-SHELL" "\"$ORACLE_BASE...  0 B         buildkit.dockerfile.v0
...
Run Code Online (Sandbox Code Playgroud)

docker podman health-check

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

如何在Mac OSX.Brew中安装Podman,无根容器?

我正在寻找在osx中​​安装Podman的简便方法。

是否有一些brew命令来安装Podman?

homebrew podman

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

Podman 图像未通过 podman image ls 显示

我正在尝试在 Red Hat Enterprise Linux 8 (CentoOS 8) 虚拟机中设置构建服务器。

我通过运行安装了 podmansudo dnf install -y @container-tools

然后我跑sudo podman pull mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim从 docker 中提取容器镜像:

尝试拉 mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim...获取图像源签名
复制 blob e936bd534ffb 完成
复制 blob caf64655bcbb 完成
复制 blob 4156e490f05f 完成
复制 blob 68ced04f60ab
完成 复制 blob 7064c3d93b4a 完成
复制配置 e2cd2 0adb1完成 将
清单写入映像目标
存储签名
e2cd20adb1292ef24ca70de7abaddaadd57a5c932d3852b972e43b6f05a03dea

这对我来说看起来很成功。如果我再次运行它,我会被告知这些层“已经存在”。但后来我跑了:

podman image ls
Run Code Online (Sandbox Code Playgroud)

我得到一个空列表:

存储库标签图像 ID 创建大小

我还尝试了以下命令来获取列表:

  • podman image ls -a
  • podman image list
  • podman image list -a
  • podman images
  • podman images ls
  • podman images …

containers centos rhel podman

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

防止使用无根容器更改安装中的权限

在有根容器中,此问题的解决方案是运行--user "$(id -u):$(id -g)",但这不适用于无根包含系统(无根 docker,或在我的情况下为 podman):

$ mkdir x
$ podman run --user "$(id -u):$(id -g)" -v "$PWD/x:/x:rw" ubuntu:focal bash -c 'echo hi >> /x/test'
bash: /x/test: Permission denied
Run Code Online (Sandbox Code Playgroud)

因此,对于无根容器系统,我应该删除--user,因为根用户会自动映射到调用用户:

$ podman run -v "$PWD/x:/x:rw" ubuntu:focal bash -c 'echo hi >> /x/test'
$ ls -al x
total 12
drwxr-xr-x  2 asottile asottile 4096 Sep  3 10:02 .
drwxrwxrwt 18 root     root     4096 Sep  3 10:01 ..
-rw-r--r--  1 asottile asottile    3 Sep  3 10:02 test …
Run Code Online (Sandbox Code Playgroud)

docker podman rootless

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

使用工具箱容器工具,我可以在 Fedora 主机上运行 Ubuntu 工具箱吗?

https://github.com/containers/toolbox是一个用于将容器与主机环境更紧密地集成的系统,以便您可以切换到工具箱,自动授予其访问您的主目录的权限,并安装一些编译器。

能否使用工具箱在 Fedora [Silverblue] 主机上安装 Ubuntu?默认配置不知道--distro Ubuntu.

toolbox podman

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

Podman Desktop 无法初始化

在 Windows 上安装 Podman Desktop 并尝试初始化 podman 机器后,进程停止在“正在初始化”状态(无错误)。

当尝试手动初始化计算机(通过 CLI)时,会返回错误:

错误:来宾操作系统上的 Shadow-utils 包权限恢复失败:退出状态 0xffffffff

或者

错误:来宾操作系统的 WSL 导入失败

windows-subsystem-for-linux podman wsl-2

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

Podman 推送导致图层表示错误

Podman Push 会导致以下错误消息:

Error: Copying this image requires changing layer representation, which is not possible (image is signed or the destination specifies a digest)
Run Code Online (Sandbox Code Playgroud)

注册表本身正在工作,从具有相同图像的另一台主机推送也可以工作(尽管版本不同)。如何解决这个问题?已经尝试过 nuking podman ,包括 graphroot 和 runroot。

  • 操作系统:RHEL 8.4
  • Podman 版本:3.2.3

redhat podman

0
推荐指数
1
解决办法
2957
查看次数

如何配置无根容器以便它们可以到达主机?

我正在尝试使用 podman 作为 docker 的替代品,但遇到了一个问题,我似乎无法从容器访问主机。

通常在 docker 中,我会将任何想要与主机通信的内容指向172.17.0.1,但该地址似乎不适用于无根 podman。

我可能在这里缺少一些非常基本的东西......

podman

0
推荐指数
1
解决办法
2435
查看次数

win 10 上的 podman pull 失败,名称解析暂时失败

编辑在 podman windows 10 wslv2 上拉取映像的问题

podman machine start 启动机器“podman-machine-default” API 转发监听:npipe:////./pipe/docker_engine

Docker API 客户端默认使用此地址。您不需要设置 DOCKER_HOST。机器“podman-machine-default”启动成功

podman machine ls NAME VM TYPE CREATED LAST UP CPUS MEMORY DISK SIZE podman-machine-default wsl 大约一小时前 当前运行 8 642.8MB 584.1MB

podman 运行 ubi8-micro 日期

已将“ubi8-micro”解析为别名(/etc/containers/registries.conf.d/000-shortnames.conf)尝试提取registry.access.redhat.com/ubi8-micro:latest...错误:正在初始化源docker://registry.access.redhat.com/ubi8-micro:latest:ping 容器注册表registry.access.redhat.com:获取“https://registry.access.redhat.com/v2/”:拨打 tcp:查找registry.access.redhat.com:名称解析暂时失败

C:\Users\user1>pingregistry.access.redhat.com

使用 32 字节数据 Ping e40408.d.akamaiedge.net [23.50.233.112]:来自 23.50.233.112 的回复:字节=32 时间=46ms TTL=56

windows-10 podman

0
推荐指数
1
解决办法
3229
查看次数