标签: podman

何时应该运行“podman 系统迁移”?

似乎podman system migrate有时需要升级 podman 存储的文件的文件格式或目录结构。(我假设更改发生在目录 ~/.local/share/containers/ 下)

有没有一个命令可以告诉我是否podman system migrate需要运行?

这个问题是关于 podman 的无根使用(即以普通用户身份运行 podman)。

podman

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

podman可以通过设置$DOCKER_HOST连接到远程docker主机吗?

我知道 podman 是一个无守护进程的容器引擎,这是一个优点。
但是,如果我需要在运行 docker 服务器的远程主机上启动容器,可以通过 podman 实现吗?

例如,将相应的证书放入以下内容后~/.docker/,是否会像命令一样在远程服务器上运行 hello-world docker

export DOCKER_HOST=tcp://remote-docker-server:2376;
export DOCKER_TLS_VERIFY=1;
podman run hello-world
Run Code Online (Sandbox Code Playgroud)

文档:[..]简单地说:alias docker=podman[..]

由于 podman 团队建议将docker命令别名为podman,我需要知道我是否仍然能够docker像以前一样使用该命令。

docker podman

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

如何更改 podman 的 cgroup 版本

我正在尝试在启用 cgroups v2 的情况下运行 podman。我发现了几篇博文,解释了如何将运行时更改为crun并将cgroup_manager更改为cgroupfs。但我不知道如何实际将 cgroup 版本设置为 v2。

我在 Manjaro Linx Kernerl 5.4 上运行 podman,所以,如果我是正确的,应该支持 cgroups v2。

这是 podman info 的输出:

host:
  BuildahVersion: 1.14.3
  CgroupVersion: v1
  Conmon:
    package: Unknown
    path: /usr/bin/conmon
    version: 'conmon version 2.0.15, commit: 1bddbf7051a973f4a4fecf06faa0c48e82f1e9e1'
  Distribution:
    distribution: manjaro
    version: unknown
  IDMappings:
    gidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 65536
      size: 66536
    uidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 65536
      size: 66536
  MemFree: …
Run Code Online (Sandbox Code Playgroud)

containers cgroups podman

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

Docker-compose 与 podman 一起使用?

如何在 podman 中使用 docker-composer 文件?

这个例子:

version: '3.7'
services:
  gitea:
    image: gitea/gitea:latest
    environment:
      - DB_TYPE=postgres
      - DB_HOST=db:5432
      - DB_NAME=
      - DB_USER=
      - DB_PASSWD=
    restart: always
    volumes:
      - git_data:/data
    ports:
      - 3000:3000
Run Code Online (Sandbox Code Playgroud)

使用dockerfile生成镜像正常吗?

docker dockerfile docker-compose podman

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

Podman pod 几天后消失,但进程仍在运行并在给定端口上侦听

我正在运行一个 Elasticsearch 容器作为 Podman pod,使用pod 的定义podman play kubeyamlPod 已创建,三个节点的集群已创建,一切都按预期进行。但是:Podman pod 在闲置几天后就会死亡。

Podmanpodman ps命令说:

ERRO[0000] Error refreshing container af05fafe31f6bfb00c2599255c47e35813ecf5af9bbe6760ae8a4abffd343627: error acquiring lock 1 for container af05fafe31f6bfb00c2599255c47e35813ecf5af9bbe6760ae8a4abffd343627: file exists
ERRO[0000] Error refreshing container b4620633d99f156bb59eb327a918220d67145f8198d1c42b90d81e6cc29cbd6b: error acquiring lock 2 for container b4620633d99f156bb59eb327a918220d67145f8198d1c42b90d81e6cc29cbd6b: file exists
ERRO[0000] Error refreshing pod 389b0c34313d9b23ecea3faa0e494e28413bd15566d66297efa9b5065e025262: error retrieving lock 0 for pod 389b0c34313d9b23ecea3faa0e494e28413bd15566d66297efa9b5065e025262: file exists
POD ID        NAME               STATUS   CREATED     INFRA ID      # OF CONTAINERS
389b0c34313d  elasticsearch-pod  Created  1 week ago  af05fafe31f6  2
Run Code Online (Sandbox Code Playgroud)

奇怪的是,如果我们尝试查找在端口 …

rhel podman rhel8

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

使用 rootless podman 公开端口

我正在尝试在 RHEL 8.3 上使用无根 podman 公开端口 8080。

我使用的podman版本是:

$ podman --version
podman version 2.2.1
Run Code Online (Sandbox Code Playgroud)

我正在使用一个简单的FlaskAPI 来测试它:

from flask import Flask

app = Flask(__name__)


@app.route("/")
def hello():
    return "Hello from the container!\n"


if __name__ == "__main__":
    app.run(host="0.0.0.0")
Run Code Online (Sandbox Code Playgroud)

容器文件如下所示:

FROM python:3.6-alpine

RUN pip3 install flask

COPY app.py app.py

EXPOSE 5000

ENTRYPOINT python3 app.py

Run Code Online (Sandbox Code Playgroud)

我正在使用以下方法构建图像:

FROM python:3.6-alpine

RUN pip3 install flask

COPY app.py app.py

EXPOSE 5000

ENTRYPOINT python3 app.py

Run Code Online (Sandbox Code Playgroud)

我正在创建一个 Pod 并在该 Pod 中启动一个容器

$ podman build -t testapi .
Run Code Online (Sandbox Code Playgroud)

所有容器都按预期运行: …

rhel podman

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

尝试将无根 Podman + docker-compose + Traefik 与 podman.sock 一起使用时权限被拒绝

TL:DR:尝试通过 podman 套接字将无根 Podman 与 docker-compose 结合使用,并使用 Traefik 容器(与 podman 套接字通信)将流量代理到其他容器,与/sf/answers/5164202921/相关

我收到权限被拒绝的错误,我可以使用我不想使用的特权容器来修复该错误。

设置

我在 RHEL 8 上运行

$ cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.6 (Ootpa)
Run Code Online (Sandbox Code Playgroud)

Podman 是预安装的,我添加了 docker-compose(“独立”)和 podman-docker:

$ curl -SL https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
$ chmod a+x /usr/local/bin/docker-compose
$ sudo yum install podman-docker
Run Code Online (Sandbox Code Playgroud)

并激活 rootless podman 套接字,以便 podman 和 docker-compose 可以相互通信:

$ systemctl --user enable podman.socket
$ systemctl --user start podman.socket
$ systemctl --user status podman.socket
$ export DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock
$ echo $DOCKER_HOST
unix:///run/user/1001/podman/podman.sock
Run Code Online (Sandbox Code Playgroud)

我还将网络后端切换为 netavark,如果不进行更改,DNS 就无法工作 …

docker-compose traefik podman rootless

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

docker.sock:在 Windows 上将 testContainers 与 Podman 一起使用时权限被拒绝

我的 Java 和 Spring Boot 应用程序集成测试使用testContainers并且我在 Windows 计算机上使用Podman 。

当尝试运行集成测试时,我收到此权限错误:

Failed to load ApplicationContext
    java.lang.IllegalStateException: Failed to load ApplicationContext
 .....
Caused by: com.github.dockerjava.api.exception.InternalServerErrorException: Status 500: {"cause":"permission denied","message":"container create: statfs /var/run/docker.sock: permission denied","response":500}
Run Code Online (Sandbox Code Playgroud)

所有集成测试都失败了。

我需要向 Podman 提供特定的权限命令吗?

permissions containers testcontainers podman

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

如何导入现有的 Linux WSL 机器以与 podman 桌面一起使用?

目前您可以运行podman machine init,这将下载 Fedora CoreOS 并安装新的 WSL 发行版。

但是是否可以安装自定义 WSL 发行版(例如 Debian),在其上安装 podman,最后将其添加到 Windows 上安装的 podman 中,以便在我运行时显示podman machine list?还是有限制,我只能使用CoreOS作为机器?

我知道我可以使用 启动 tcp 服务,podman system service start -t 0 tcp://localhost:8888然后使用 Windows 添加它podman system connection add user tcp://localhost:8888,但这不是我想要的。

linux windows containers podman wsl-2

5
推荐指数
0
解决办法
813
查看次数

更改podman存储文件夹

我安装了“Podman Desktop”(在 Windows 10 上),现在我需要将 podman 保存容器的文件夹移动到另一个磁盘,因为它达到了 50GB(!),我注意到默认位于“C:\Users\my_user\ .local\share\containers...”,我想将其移至“D:\podman”(for.ex)

我搜索了很多,但没有在 Podman 桌面设置中找到任何选项来执行此操作(配置文件中都没有)

我真的想知道这个看似简单且常见的操作是否在某些 Podman Desktop UI 选项(或配置文件)中没有处理

谢谢

podman

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