标签: podman

在 gitlab-ci 中运行 buildah

我想使用 gitlab-ci 中的 buildah 来构建图像,从中运行容器并对其进行一些测试。

我当前的 gitlab-ci 是:

tests:
  tags:
    - docker
  image: quay.io/buildah/stable
  stage: test
  variables:
      STORAGE_DRIVER: "vfs"
      BUILDAH_FORMAT: "docker"
      BUILDAH_ISOLATION: "rootless"
  only:
    refs:
      - merge_requests
    changes:
      - **/*
  script:
    - buildah info --debug
    - buildah unshare docker/test/run.sh
Run Code Online (Sandbox Code Playgroud)

我的运行器是私有的 gitlab 运行器,我不想更改其配置(以免破坏其他 CI)。

run.sh的内容是:

#!/usr/bin/env bash
set -euo pipefail
container=$(buildah --ulimit nofile=8192 --name my-container from phusion/baseimage:bionic-1.0.0-amd64)
Run Code Online (Sandbox Code Playgroud)

错误是:

level=warning msg="error reading allowed ID mappings: error reading subuid mappings for user \"root\" and subgid mappings for group \"root\": No subuid ranges found …
Run Code Online (Sandbox Code Playgroud)

docker gitlab-ci buildah podman

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

Podman 无法将本地文件挂载到容器中

我计划从 Docker 迁移到 Podman。我经常使用 docker-compose,所以我也计划切换到 podman-compose。

然而,我陷入了最简单的 podman 示例,我似乎无法将卷安装到我的容器上?显然我做错了什么,但我不知道它是什么。

我的源文件肯定存在于我的(硬件)主机上(所以不是 podman 机器)。但我不断收到错误“没有这样的文件或目录”。

有趣的是,如果我在 podman 机器本地手动创建相同的文件(podman 机器 ssh --> touch /tmp/test.txt),它工作得很好。

问题是;

  • 我应该(手动?)将所有本地文件挂载到 Fedora VM(podman 机器)上,以便可以在我的实际容器中使用此 Fedora 挂载吗?如果是这样,我该怎么做?
  • 下面的命令podman run应该可以工作,我还做错了什么吗?
$ ls -al /tmp/test.txt
-rw-r--r--  1 <username> <group> 10 Dec 8 13:33 /tmp/test.txt

$ podman run -it -v /tmp/test.txt:/tmp/test.txt docker.io/library/busybox
Error: statfs /tmp/test.txt: no such file or directory

$ podman run -it -v /tmp/test.txt:/tmp/test.txt:Z docker.io/library/busybox
Error: statfs /tmp/test.txt: no such file or directory
Run Code Online (Sandbox Code Playgroud)

附加信息:

$ podman info --debug
host: …
Run Code Online (Sandbox Code Playgroud)

mount volume podman

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

与 docker 相比,podman 构建和运行容器的速度非常慢

我创建了一个交叉编译容器映像,其中包含针对不同目标平台(裸机 Arm 核心、MINGW/Windows、armhf/Raspberry Pi)的构建环境。

以下所有内容均在 Intel NUC 8i7BEH 上的 Manjaro Linux 下完成。我以普通用户身份登录。

构建镜像已经揭示了 docker 和 podman 之间巨大的性能差异。在我性能相当低的机器上,我发现 docker 构建的运行速度比使用 podman 完成相同任务快了 6 倍以上。

docker build - 4 min 36 sec
podman build > 25 minutes
Run Code Online (Sandbox Code Playgroud)

为单个目标构建我的应用程序然后平均使用:

podman - 73 sec
docker -  4.9sec
Run Code Online (Sandbox Code Playgroud)

在同一台机器上进行本机构建平均需要 3 秒。

启动容器镜像以按顺序构建适用于 3 个不同平台的应用程序需要(平均):

podman - 85 sec
docker - 13 sec
Run Code Online (Sandbox Code Playgroud)

如何解释容器性能的巨大差异?我可以做些什么来提高 podman 的性能,以便它至少进入与 docker 相同的区域吗?我宁愿使用 podman 而不是 docker。我更喜欢 podman 提供的无服务设置以及无根容器。

谢谢斯特凡

podman

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

Podman 机器在 Ubuntu 上启动

我在 podman 上启动机器时遇到问题 我正在使用 ubuntu 20.04 服务器 我像这样安装了 podman

echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
curl -L "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/Release.key" | sudo apt-key add -
sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get -y install podman
Run Code Online (Sandbox Code Playgroud)

podman 版本是

podman version
Version:      3.4.2
API Version:  3.4.2
Go Version:   go1.16.6
Built:        Thu Jan  1 00:00:00 1970
OS/Arch:      linux/amd64
Run Code Online (Sandbox Code Playgroud)

我需要启动 podman 机器,但出现错误

我正在这样创作

root@ubuntu:# podman machine init
Extracting compressed file
root@ubuntu:# podman machine list
NAME                     VM TYPE     CREATED         LAST UP         CPUS        MEMORY …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu podman

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

Podman 初始化 (init) 在 Windows 10 上不起作用

更新:我设法通过使用此命令启用 wsl2 来解决此问题

wsl --设置默认版本 2

运行 podman-v4.1.0.msi 并在 power shell 中运行 podman machine init 命令后,我得到以下信息:

Copr repo for podman4 owned by rhcontainerbot                                            12 kB/s | 1.0 kB     00:00
Importing GPG key 0x2F6C3CBA:
 Userid     : "rhcontainerbot_podman4 (None) <rhcontainerbot#podman4@copr.fedorahosted.org>"
 Fingerprint: 79B5 022D 580F B1D6 B527 CB83 3BB2 485A 2F6C 3CBA
 From       : https://download.copr.fedorainfracloud.org/results/rhcontainerbot/podman4/pubkey.gpg
Key imported successfully
error: sqlite failure: CREATE TABLE IF NOT EXISTS 'Packages' (hnum INTEGER PRIMARY KEY AUTOINCREMENT,blob BLOB NOT NULL): locking protocol
error: cannot open Packages index using …
Run Code Online (Sandbox Code Playgroud)

podman

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

podman 返回“处理 tar 文件时出错(退出状态 1):不支持操作”(无根)

启动镜像 alpine 和 ubuntu 时,podman 可以工作(RHEL 8)。如果启动图像 ubi8 和 grafana/grafana-oss,则会失败并显示

Error: writing blob: adding layer with blob "sha256:de63ba066b7c0c23e2434efebcda7800d50d60f33803af9c500f75a69fb76ffa": Error processing tar file(exit status 1): operation not supported
Run Code Online (Sandbox Code Playgroud)

为什么有些图像失败而其他图像却失败?这是无根完成的,但网络文件系统并未发挥作用。完整输出:

$ whoami
foo
$ echo $HOME
/home/foo
$ df -h /home
Filesystem      Size  Used Avail Use% Mounted on
rootfs          7.9G  6.8G  1.2G  86% /
$ podman run -it ubi8
Resolved "ubi8" as an alias (/etc/containers/registries.conf.d/001-rhel-shortnames.conf)
Trying to pull registry.access.redhat.com/ubi8:latest...
Getting image source signatures
Checking if image destination supports signatures
Copying blob 1b890c73c3cf …
Run Code Online (Sandbox Code Playgroud)

podman

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

在 Redhat 9 中通过套接字与 podman docker 交互

我正在尝试将我的一个开发盒从 centos 8 迁移到 RHEL9。我严重依赖 docker,并注意到当我尝试在 RHEL 机器上运行 docker 命令时,它安装了 podman-docker。事情似乎进展得很顺利。我能够使用我已经知道的 docker 命令毫无问题地提取图像、启动、构建、提交新版本。

我遇到的问题是我似乎无法通过 docker 套接字(这似乎是 podman 的链接)与其交互。

如果我运行 docker 命令:

[@rhel9 ~]$ docker images
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
REPOSITORY             TAG              IMAGE ID      CREATED      SIZE
docker.io/redhat/ubi9  dev_image        de371523ca26  6 hours ago  805 MB
docker.io/redhat/ubi9  latest           9ad46cd10362  6 days ago   230 MB
Run Code Online (Sandbox Code Playgroud)

它按预期列出了我的图像。我应该也可以运行:

[@rhel9 ~]$ curl --unix-socket /var/run/docker.sock -H 'Content-Type: application/json' http://localhost/images/json | jq .
  % Total    % Received % Xferd  Average Speed   Time    Time …
Run Code Online (Sandbox Code Playgroud)

redhat docker podman

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

如何使用 podman 的 ssh 构建标志?

我一直在使用docker 构建--ssh标志来让构建从 ssh-agent 访问我的密钥。

\n

当我用 podman 尝试同样的事情时,它不起作用。我正在 macOS Monterey 12.0.1 上工作。英特尔芯片。我还在 Ubuntu 和 WSL2 上重现了这个。

\n
\xe2\x9d\xaf podman --version\npodman version 3.4.4\n
Run Code Online (Sandbox Code Playgroud)\n

这是一个 Dockerfile 示例:

\n
FROM python:3.10\n\nRUN mkdir -p -m 0600 ~/.ssh \\\n    && ssh-keyscan github.com >> ~/.ssh/known_hosts\n\nRUN --mount=type=ssh git clone git@github.com:ruarfff/a-private-repo-of-mine.git\n\n
Run Code Online (Sandbox Code Playgroud)\n

当我运行DOCKER_BUILDKIT=1 docker build --ssh default .它时,它可以工作,即构建成功,存储库被克隆,并且 ssh 密钥没有烘焙到图像中。

\n

当我运行podman build --ssh default .构建失败时:

\n
git@github.com: Permission denied (publickey).\nfatal: Could not read from remote repository.\n\nPlease make sure you …
Run Code Online (Sandbox Code Playgroud)

ssh ssh-keys buildah podman

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

Podman桌面始终处于初始化状态

我尝试使用 podman 桌面来替换 docker 桌面。当我安装这个podman桌面并打开它时,它始终处于初始化状态。我不知道这是怎么回事。有人遇到过同样的问题吗?

在此输入图像描述

我想安装并使用 podman 桌面并找出它有什么问题。

podman

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

podman 开始卡在“正在等待 VM...”

在 mac m2 max 上,我使用安装了 podman brew intsall podman,然后运行podman machine init --disk-size 150,然后运行podman start。它卡在“正在等待虚拟机...”上。我从 qemu 看到此错误:同步异常位于 0x00000000BC562000

macos virtualization qemu podman

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

标签 统计

podman ×10

buildah ×2

docker ×2

gitlab-ci ×1

linux ×1

macos ×1

mount ×1

qemu ×1

redhat ×1

ssh ×1

ssh-keys ×1

ubuntu ×1

virtualization ×1

volume ×1