繁体   English   中英

如何从容器内在主机上运行 podman 命令

[英]How to run podman commands on host from within container

在 docker 的情况下,这可以通过在容器内安装 docker.sock 来实现。

但是由于 podman 中没有守护进程。 docker.sock 的替代品是什么?

我通常想检查主机上的 podman 图像并启动一个新容器。

我将 Podman 与 --privileged=true 和 root 一起使用。

2020 年 1 月的一篇博客文章中宣布了一个新的 API(状态:实验性)。

[root@fedora31 ~]# podman --version
podman version 1.8.0
[root@fedora31 ~]# podman system service --timeout 500000 unix://root/foobar.sock 
This function is EXPERIMENTAL.

由于 API 仍处于试验阶段,这可能会发生变化,但现在您可以进行如下查询:

[root@fedora31 ~]# curl -s --unix-socket /root/foobar.sock http://d/v1.24/images/json | python3 -m json.tool
[
    {
        "Containers": 0,
        "Created": 1572319417,
        "Id": "f0858ad3febdf45bb2e5501cb459affffacef081f79eaa436085c3b6d9bd46ca",
        "Labels": {
            "maintainer": "Clement Verna <cverna@fedoraproject.org>"
        },
        "ParentId": "",
        "RepoDigests": [
            "sha256:8fa60b88e2a7eac8460b9c0104b877f1aa0cea7fbc03c701b7e545dacccfb433"
        ],
        "RepoTags": [
            "docker.io/library/fedora:latest"
        ],
        "SharedSize": 0,
        "Size": 201095865,
        "VirtualSize": 201095865,
        "CreatedTime": "0001-01-01T00:00:00Z"
    },
    null
]
[root@fedora31 ~]# 

添加命令python3 -m json.tool以漂亮地打印 JSON 输出。

我认为可以通过使用绑定安装技术(在问题中提到)从容器内部访问 UNIX 套接字。

根据手册页,命令podman system service也接受标志--varlink

使用 Varlink 而不是新的 API 现在可能是更好的解决方案,因为它更成熟,但将来会被弃用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM