小编BMi*_*tch的帖子

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 上从本地计算机挂载卷

我正在尝试使用 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万
查看次数

如何解析Docker图像名称?

在执行docker push或拉动图像时,Docker如何确定图像名称中是否存在注册服务器,或者它是默认注册表(例如Docker Hub)上的路径/用户名?

我从1.1图像规范中看到以下内容:

标签

标记用于将描述性的,用户指定的名称映射到任何单个图像ID.标签值仅限于字符集[a-zA-Z_0-9].

知识库

在公共前缀(名称组件:)之前分组的标签集合.例如,在标记为my-app:3.1.4的图像中,my-app是名称的Repository组件.存储库名称由斜杠分隔的名称组件组成,可选地以DNS主机名为前缀.主机名必须遵循标准DNS规则,但可能不包含_字符.如果存在主机名,则可以选择后跟以下格式的端口号:8080.名称组件可能包含小写字符,数字和分隔符.分隔符定义为句点,一个或两个下划线,或一个或多个破折号.名称组件不能以分隔符开头或结尾.

对于DNS主机名,是否需要使用点完全限定,或者"my-local-server"是否为有效的注册表主机名?对于名称组件,我看到句点有效,这意味着"team.user/appserver"是有效的图像名称.如果注册表服务器在端口80上运行,因此图像名称中的主机名上不需要端口号,则主机名和注册表服务器上的路径之间似乎存在歧义.我很好奇Docker如何解决这种模棱两可的问题.

docker docker-registry

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

如何在C二进制文件中嵌入Lua脚本?

我一直在贝壳世界被宠坏了,我可以做:

./lua <<EOF
> x="hello world"
> print (x)
> EOF
hello world
Run Code Online (Sandbox Code Playgroud)

现在我试图在C应用程序中包含一个Lua脚本,我希望它会随着时间的推移而增长.我从一个简单的开始:

const char *lua_script="x=\"hello world\"\n"
  "print(x)\n";
luaL_loadstring(L, lua_script);
lua_pcall(L, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)

但这有几个缺点.首先,我必须逃避换行和引用.但是现在我在string length ‘1234’ is greater than the length ‘509’ ISO C90 compilers are required to support使用gcc进行编译时遇到了警告,我想保持这个程序不仅是自包含的,而且可以移植到其他编译器中.

在C程序中包含大型Lua脚本的最佳方法是什么,而不是作为单独的文件提供给最终用户?理想情况下,我想将脚本移动到单独的*.lua文件中以简化测试和更改控制,并将该文件以某种方式编译到可执行文件中.

c lua

8
推荐指数
2
解决办法
2738
查看次数

将目录挂载到容器不适用于 podman

由于我有 fedora,我尝试运行他们教程中的 nginx 示例,但我没有让 nginx 显示任何内容。

当我运行这个容器时:

podman run --name mynginx1 -p 8080:80 -d nginx
Run Code Online (Sandbox Code Playgroud)

我收到欢迎来到 nginx!页。

但是当我尝试运行安装了目录的示例时:

podman run --name mynginx2 \
  --mount type=bind,source=/home/simon/Dokumente/podman/nginx/content,target=/usr/share/nginx/html \
  -p 9080:80 -d nginx
Run Code Online (Sandbox Code Playgroud)

我还收到欢迎来到 nginx!页,但我index.html在该源目录中有一个文件。

该容器有什么问题?

podman

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

AWS ECR 使用 podman 登录

早上好/下午好/晚上好!你能帮我吗?

我正在使用 RHEL 8.2,该版本不支持 Docker。我安装了 Podman,一切正常,直到我使用以下命令:

$(aws ecr get-login --no-include-email --region us-east-1)
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用,因为它来自 Docker(我以为它来自 AWS Cli)。

错误是:

# $(aws ecr get-login --no-include-email --region us-east-1)
-bash: docker: command not found
Run Code Online (Sandbox Code Playgroud)

我一直在寻找答案,有些人使用了这样的命令:

podman login -u AWS -p ....
Run Code Online (Sandbox Code Playgroud)

但我尝试了一些标志和图像,但没有任何效果!

podman 的等效命令是什么?

谢谢!

redhat amazon-web-services amazon-ecr podman

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

Podman 如果有很多容器,如何删除所有退出的容器

在一台使用 Podman 运行容器的服务器上,我刚刚意识到,有许多处于“已退出”状态的容器,并且想要一次性删除所有容器。

我怎样才能用 Podman 做到这一点?

linux-containers redhat-containers podman

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

在 Azure DevOps 中使用 podman 而不是 docker 执行 Docker@2 任务

我们的构建代理正在运行 Podman 3.4.2,并且每个终端会话都有一个全局别名,只需将 docker 替换为 podman,因此该命令docker --version会产生podman version 3.4.2结果。

目标是使用 podman 来执行Docker@2Azure DevOps 管道中的任务:

steps:
- task: Docker@2
  displayName: Build and push an image to container registry
  inputs:
    command: buildAndPush
    repository: aspnet-web-mhi
    dockerfile: $(dockerfilePath)
    containerRegistry: $(dockerRegistryServiceConnection)
    tags: |
      $(tag) 
Run Code Online (Sandbox Code Playgroud)

事实证明我的假设有点天真,这会起作用,因为 ado_agent 没有这些:

##[错误]未处理:无法找到可执行文件:“docker”。请验证文件路径是否存在,或者是否可以在 PATH 环境变量指定的目录中找到该文件。还要检查文件模式以验证文件是否可执行。

有没有一种方法可以让替换工作顺利进行?如果可以避免的话,我会避免自己编写所有脚本以使用 podman 而不是 docker 并将其推送到注册表。

azure-devops azure-pipelines podman

8
推荐指数
1
解决办法
4227
查看次数

与 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
查看次数