标签: podman

Mac OS 中 Podman 挂载主机卷返回“错误:statfs:没有此类文件或目录”

最近从 Docker Desktop 切换到 Podman,一切都很顺利,除了当我想将主机卷挂载到容器中时。例如

\n
\xe2\x9e\x9c  ~ podman run --name nginx -v ~/bin/nginx/nginx.conf:/etc/nginx/nginx.conf:ro -d -p 8080:80 nginx\nError: statfs /Users/rb/bin/nginx/nginx.conf: no such file or directory\n\n\xe2\x9e\x9c  ~  ls -lt ~/bin/nginx/nginx.conf                                                                 \n-rw-r--r--  1 rb staff  490 Apr 23 14:31 /Users/rb/bin/nginx/nginx.conf\n
Run Code Online (Sandbox Code Playgroud)\n

主机文件~/bin/nginx/nginx.conf确实存在,那么这里有什么问题呢?

\n

mount podman

27
推荐指数
3
解决办法
2万
查看次数

Podman 从 docker hub 提取“官方”镜像?

无论我做什么,我只会收到 404 或错误:无效的参考格式

我认为应该是 podman pull hub.docker.com/_/postgres

但这行不通。我也尝试过

podman pull hub.docker.com/postgres

podman pull hub.docker.com/__/postgres

podman pull hub.docker.com/library/postgres
Run Code Online (Sandbox Code Playgroud)

您知道需要什么才能从 Docker Hub 获取官方镜像吗?

podman

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

如何在 Podman 上从本地计算机挂载卷

我正在尝试使用 Podman 进行本地开发。我的想法是使用本地文件夹并将其与我将运行应用程序的容器同步。

我发现,-v如果我使用 Docker,我将使用的选项可以与服务器计算机一起使用,正如文档中所述-v Bind mount a volume into the container. Volume src will be on the server machine, not the client。因此,当我使用该选项时,该文件夹未安装,并且当我使用以下命令访问它时找不到它podman exec -it application bash

我有办法解决这个问题吗?我想要相当于:

docker run -v localFolder:/remoteFolder application

其中localFolder是我本地计算机中的路径,它将映射到remoteFolder容器上

podman

22
推荐指数
3
解决办法
4万
查看次数

podman 机器 - 无法连接到 MacOS 上的 Podman

更新:已解决,请查看答案。

\n

podman在 MacOS 上使用podman machine,现在podman无法连接到podman machine.

\n

(它之前可以工作,但不确定新的 macOS 版本导致了该问题)

\n

MacOS 蒙特利 (12.1)

\n
$ podman machine init\nExtracting compressed file\n\n$ podman machine start\nINFO[0000] waiting for clients...                       \nINFO[0000] listening tcp://127.0.0.1:7777               \nINFO[0000] new connection from  to /var/folders/8f/v0tpqxg56wsf9x6x6tntjt5h0000gn/T/podman/qemu_podman-machine-default.sock \nWaiting for VM ...\nMachine "podman-machine-default" started successfully\n\n$ podman machine ls\nNAME                     VM TYPE     CREATED             LAST UP            CPUS        MEMORY      DISK SIZE\npodman-machine-default*  qemu        About a minute ago  Currently running  1           2.147GB     10.74GB\n\n$ podman version\nCannot connect to Podman. Please …
Run Code Online (Sandbox Code Playgroud)

containers podman

18
推荐指数
3
解决办法
2万
查看次数

有“ Podman Compose”吗?

我最近发现了有关Podman(https://podman.io)的信息。我有一种使用Linux fork进程而不是Daemon的方法,而不必使用root运行。

但是我非常习惯使用docker-compose来协调机器上运行的容器(在生产中,我们使用kubernetes)。我真的很喜欢。

所以我正在尝试替换docker-compose。我将尝试保持docker-compose并使用podman作为docker的别名,因为Podman使用与docker相同的语法:

别名docker = podman

能行吗 你能建议其他工具吗?如果可能的话,我真的打算保留docker-compose.yml文件。

containers docker docker-compose podman

15
推荐指数
2
解决办法
6283
查看次数

Podman中的Podman,类似于Docker中的Docker?

有没有办法在 Podman 中运行 Podman,类似于在 Docker 中运行 Docker 的方式?

这是我的 Dockerfile 的一个片段,它很大程度上基于另一个问题

FROM debian:10.6

RUN apt update && apt upgrade -qqy && \
    apt install -qqy iptables bridge-utils \
                     qemu-kvm libvirt-daemon libvirt-clients virtinst libvirt-daemon-system \
                     cpu-checker kmod && \
    apt -qqy install curl sudo gnupg2 && \
    echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_10/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list && \
    curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_10/Release.key | sudo apt-key add - && \
    apt update && \
    apt -qqy install podman
Run Code Online (Sandbox Code Playgroud)

现在尝试一些测试:

$ podman run -it my/test …
Run Code Online (Sandbox Code Playgroud)

virtualization kvm qemu docker podman

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

在 Java 测试中使用 Podman 测试容器

是否可以在 Java 测试中将 Testcontainers 与 Podman 一起使用?

截至 2022 年 3 月,Testcontainers 库未将已安装的 Podman 检测为有效的 Docker 环境。

Podman 可以在采用 Apple 芯片的 MacOS(本地开发环境)和 Linux x86_64(CI/CD 环境)上替代 Docker 吗?

testcontainers podman testcontainers-junit5

14
推荐指数
3
解决办法
2万
查看次数

用户 ID 的映射

我正在无根模式下评估 podman,并面临用户 ID 映射问题。

我使用 ID 为 1000 的“myuser”运行 podman。

cat /etc/subuid
myuser:100000:65536
Run Code Online (Sandbox Code Playgroud)

运行 pod 时,pod 用户是 root,从主机角度来看,已安装卷上创建的文件属于“myuser”,我可以访问它们,所以一切都很好。

运行 pod 时,pod 用户不是 root(例如 UID 2002),从主机角度来看,已安装卷上创建的文件属于 UID“102002”,这会导致我无法访问主机上的该文件

正如预期的那样,podman unshare 如下所示

podman unshare cat /proc/self/uid_map
0       1000          1
1     100000      65536
Run Code Online (Sandbox Code Playgroud)

我是否有机会通过正确配置 podman 运行或配置文件来访问这些文件?

谢谢约尔格

podman

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

在docker容器内运行时如何保存keycloak数据?

我使用docker命令独立运行 keycloak docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:15.0.2

容器停止后如何挂载卷来保存数据?

mount docker keycloak podman

12
推荐指数
2
解决办法
9198
查看次数

为什么 Podman 使用不同的 UID 报告“命名空间中没有足够的可用 ID”?

事实:

  1. 无根 podman 非常适合 uid 1480
  2. 无根 podman 因 uid 而失败 2088
  3. CentOS 7
  4. 核心 3.10.0-1062.1.2.el7.x86_64
  5. 播客版本 1.4.4
  6. 几乎整个环境都被移除了两者之间
  7. 的文件系统/tmpxfs
  8. capsh两个用户的输出是相同的,但对于 uid / username
  9. 两个 UID 在/etc/sub{u,g}id文件中都有相同的条目
  10. $HOME/.config/containers/storage.conf是默认值,除了 uids 之外,两者是相同的。在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 Code Online (Sandbox Code Playgroud)

containers centos cgroups linux-namespaces podman

11
推荐指数
2
解决办法
7747
查看次数