我在 RHEL 7.6 上安装了 podman 并且可以使用 sudo 运行正常的 docker 命令
sudo podman run hello-world
Run Code Online (Sandbox Code Playgroud)
有没有办法在不使用 sudo 的情况下运行它,而不使用用户名空间(类似于docker使用常规docker命令时将用户添加到组中)?
我知道当以非 root 用户身份运行时,podman 使用用户名空间。但我无法在机器上启用/设置 suid(LDAP 等)
目前,当以非 root 用户身份运行时,我得到了这个
user namespaces are not enabled in /proc/sys/user/max_user_namespaces
ERRO[0000] cannot re-exec process
Run Code Online (Sandbox Code Playgroud) 非 root 用户一直在尝试运行 podman 和 buildah 命令,但现在只想将所有内容重置为开始实验之前的状态(即所有容器映像和容器应与 buildah 和 podman 配置一起删除)。
我最好的猜测是跑步
testuser@linux:~$ rm -rf ~/.local/share/containers/
Run Code Online (Sandbox Code Playgroud)
可能会起作用。
为此你推荐什么命令?
Ubuntu 18.04.2 与 https://launchpad.net/~projectatomic/+archive/ubuntu/ppa
testuser@linux:~$ dpkg -l|grep podm
ii podman 1.3.2-1~dev~ubuntu18.04~ppa15 amd64 Manage pods, containers and container images.
testuser@linux:~$ dpkg -l|grep buildah
ii buildah 1.9.0-1~dev~ubuntu18.04~ppa17 amd64 A command line tool used for creating OCI images.
testuser@linux:~$
Run Code Online (Sandbox Code Playgroud) 我的主目录中几乎没有剩余磁盘空间,但目录/scratch/tmpexperiment中有大量磁盘空间。该目录现在是空的。
我想尝试一下命令podman和buildah(只是为了实验和学习)。实验结束后我想删除目录/scratch/tmpexperiment。
是否可以指示podman并buildah仅在 /scratch/tmpexperiment下创建和写入文件?
最好我的主目录在实验期间保持不变(或至少尽可能少地修改)。
我的用户没有 sudo 权限。这个问题是关于 podman 和 buildah 的非 root(无根)使用。安装的软件版本为podman 1.4.0和1.9.0-dev。
我的理解是,当 Podman 拉取图像时,它将其缓存到用户主目录 - 例如)~/.local/share/containers。Docker 提供了一种私有镜像注册表机制,可以在项目团队之间共享。我找不到任何与 Podman 类似概念的参考。Podman 如何管理需要在团队中共享的私有镜像?
我正在努力寻找任何对 Podman 私人注册表的引用。StackOverflow 上有 0 个关于此主题的搜索结果。
我想知道如何在不使用--privileged参数的情况下在 docker 容器中运行 Podman ?我没有使用rootless,这意味着我现在正在与root用户一起运行。
privileged$ docker run --rm -it --privileged podman:test sh
$ / podman run --rm -it docker.io/alpine sh
Trying to pull docker.io/alpine...
Getting image source signatures
Copying blob cbdbe7a5bc2a done
Copying config f70734b6a2 done
Writing manifest to image destination
Storing signatures
/ #
Run Code Online (Sandbox Code Playgroud)
$ docker run --rm -it --cap-add SYS_ADMIN --cap-add NET_ADMIN podman:test sh
$ / podman run --rm -it docker.io/alpine sh
Trying to pull docker.io/alpine...
Getting image …Run Code Online (Sandbox Code Playgroud) 我在RHEL7中安装Podman后配置了Subuid和Subgid
我创建了一个简单的 Dockerfile 来打印 hello world 并尝试构建图像。我的 Dockerfile
FROM alpine
CMD ["echo", "Hello World"]
Run Code Online (Sandbox Code Playgroud)
为了测试我正在运行以下命令
Podman build -t imagename .
Run Code Online (Sandbox Code Playgroud)
我看到收到以下错误。
STEP 1: FROM alpine
Error: error creating build container: The following failures happened while trying to pull image specified by "alpine" based on search registries in /etc/containers/registries.conf:
* "localhost/alpine": Error initializing source docker://localhost/alpine:latest: error pinging docker registry localhost: Get https://localhost/v2/: dial tcp [::1]:443: connect: connection refused
* "registry.access.redhat.com/alpine": Error initializing source docker://registry.access.redhat.com/alpine:latest: error pinging docker registry registry.access.redhat.com: Get https://registry.access.redhat.com/v2/: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 podman (版本:3.2.3)登录私有 docker 注册表。
\n我使用时安装的默认虚拟机podman machine init
证书(即.pem文件)安装在 macOS\xe2\x80\x99s 钥匙串中。
当我跑步时:
\npodman login myhost.io\nRun Code Online (Sandbox Code Playgroud)\n输入用户名和密码后,我得到:
\nError: authenticating creds for "myhost.io": error pinging docker registry myhost.io: Get "https://myhost.io/v2/": x509: certificate signed by unknown authority\nRun Code Online (Sandbox Code Playgroud)\n我做错了什么吗?我可以使用钥匙串中保存的证书吗?或者我可以使用 .pem 文件吗\xe2\x80\x94-authfile?
感谢您的帮助和建议。
\n我正在尝试使用podman 在 RHEL 8.0 中使用了望塔容器( https://containrrr.dev/watchtower/ )。由于 RHEL 8.0 不正式支持 docker,因此我没有在该虚拟机中安装 docker-engine。我已经启动了 podman.socket 服务,并且 podman.sock 位于 /run/podman/podman.sock
当我发出podman-compose up -d命令时,所有其他容器都成功启动,没有任何错误,但瞭望塔容器退出并显示代码 (1)。
这是瞭望塔容器生成的日志:
time="2022-01-20T13:45:50Z" level=error msg="Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get \"http://%2Fvar%2Frun%2Fdocker.sock/v1.25/containers/json?filters=%7B%22status%22%3A%7B%22running%22%3Atrue%7D%7D&limit=0\": dial unix /var/run/docker.sock: connect: permission denied"
0
Run Code Online (Sandbox Code Playgroud)
我授予了 /run/podman/podman.sock 文件的执行权限,但仍然收到此错误。
带有瞭望塔服务的 docker-compose.yml 片段。
watchtower:
image: index.docker.io/containrrr/watchtower:1.3.0
volumes:
- /run/podman/podman.sock:/var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)
由于我没有 docker.sock,因此我将 podman.sock 安装到 docker.sock,以便 watchtower 可以与 docker API 进行通信。
我该如何修复它?(我不想安装docker)
我知道 Docker 和 Kubernetes 解决了同样的问题。大多数用户可以简单地将 Docker 别名为 Podman(别名 docker=podman),不会出现任何问题。
那么它们之间有什么区别呢?
我正在尝试使用 Podman 在 IntelliJ 中构建 Spring Boot 项目的映像。Jetbrain 的指南建议在构建、执行、部署 > Docker 中“选择 TCP 套接字并在引擎 API URL 中指定 Podman API 服务 URL”(请参阅 https://www.jetbrains.com/help/idea/podman.html)。
但是,当提供 Podman 文档中找到的 TCP 套接字时(请参阅https://docs.podman.io/en/latest/markdown/podman-system-service.1.html),IntelliJ 表示无法连接。
最后,当终端中出现以下错误时:
(base) abc ~ % podman ps
Cannot connect to Podman. Please verify your connection to the Linux system using `podman system connection list`, or try `podman machine init` and `podman machine start` to manage a new Linux VM
Error: unable to connect to Podman socket: server API …Run Code Online (Sandbox Code Playgroud)