【问题标题】:How to run podman commands on host from within container如何从容器内在主机上运行 podman 命令
【发布时间】:2020-04-21 19:14:29
【问题描述】:

如果是 docker,这可以通过在容器中挂载 docker.sock 来实现。

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

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

我正在使用带有 --privileged=true 和 root 的 Podman。

【问题讨论】:

    标签: docker containers rhel podman


    【解决方案1】:

    2020 年 1 月在blog post 中宣布了一个新的 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 套接字。

    根据man page,命令podman system service也接受标志--varlink

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

    【讨论】:

      猜你喜欢
      • 2020-07-28
      • 2019-09-25
      • 2020-12-08
      • 2020-11-29
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      • 1970-01-01
      • 2015-04-07
      相关资源
      最近更新 更多