有这个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 权限 …我有一个基于健康检查图像的图像。就我而言,它是 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) 我正在寻找在osx中安装Podman的简便方法。
是否有一些brew命令来安装Podman?
我正在尝试在 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 …在有根容器中,此问题的解决方案是运行--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) https://github.com/containers/toolbox是一个用于将容器与主机环境更紧密地集成的系统,以便您可以切换到工具箱,自动授予其访问您的主目录的权限,并安装一些编译器。
能否使用工具箱在 Fedora [Silverblue] 主机上安装 Ubuntu?默认配置不知道--distro Ubuntu.
在 Windows 上安装 Podman Desktop 并尝试初始化 podman 机器后,进程停止在“正在初始化”状态(无错误)。
当尝试手动初始化计算机(通过 CLI)时,会返回错误:
错误:来宾操作系统上的 Shadow-utils 包权限恢复失败:退出状态 0xffffffff
或者
错误:来宾操作系统的 WSL 导入失败
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。
我正在尝试使用 podman 作为 docker 的替代品,但遇到了一个问题,我似乎无法从容器访问主机。
通常在 docker 中,我会将任何想要与主机通信的内容指向172.17.0.1,但该地址似乎不适用于无根 podman。
我可能在这里缺少一些非常基本的东西......
编辑在 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
podman ×11
docker ×2
centos ×1
containers ×1
dockerfile ×1
health-check ×1
homebrew ×1
redhat ×1
rhel ×1
rootless ×1
toolbox ×1
windows-10 ×1
windows-subsystem-for-linux ×1
wsl-2 ×1