【问题标题】:Getting runc config.json from docker container从 docker 容器中获取 runc config.json
【发布时间】:2019-06-15 15:51:40
【问题描述】:

我正在尝试从 docker 容器创建 runc 容器。

我关注了blog post,并成功地从正在运行的 docker 容器中提取了 config.json。

问题是

  1. 我找到 config.json 的路径与我在网上找到的参考不同
  2. 据我所知,相同的路径在具有相同 docker 版本的不同主机上不起作用。在该主机上,我无法找到 config.json 的生成位置。

我在哪里可以找到 config.json 的信息相互矛盾,并且无法在我的主机上找到它。

|config.json location                     | source                         |
|-----------------------------------------|--------------------------------------------|
|/run/docker/libcontainerd/<container id> | http://crunchtools.com/getting-ninja-runc/ |
|/var/run/docker/libcontainerd/<container id> |https://github.com/genuinetools/riddler |
|/var/run/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/<container id> | my host #1 |
| ??? | my host #2 |

我还可以查看哪些其他位置,我如何知道会是哪一个?这是在某处配置的吗,这是否取决于 docker、containerd、runc 或其他的版本?

【问题讨论】:

    标签: docker runc containerd


    【解决方案1】:

    我在这里找到了 config.json:

    /run/containerd/io.containerd.runtime.v1.linux/moby/container_id/config.json

    在 ubuntu18.04 上,docker 版本:

    Client: Docker Engine - Community
     Version:           19.03.4
     API version:       1.40
     Go version:        go1.12.10
     Git commit:        9013bf583a
     Built:             Fri Oct 18 15:54:09 2019
     OS/Arch:           linux/amd64
     Experimental:      false
    
    Server: Docker Engine - Community
     Engine:
      Version:          19.03.4
      API version:      1.40 (minimum version 1.12)
      Go version:       go1.12.10
      Git commit:       9013bf583a
      Built:            Fri Oct 18 15:52:40 2019
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          1.2.10
      GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
     runc:
      Version:          1.0.0-rc8+dev
      GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
     docker-init:
      Version:          0.18.0
      GitCommit:        fec3683
    

    【讨论】:

      【解决方案2】:

      @lin.qian 的回答为我节省了几个小时。 config.json 现在位于/run/containerd/io.containerd.runtime.v1.linux/moby/,而不是问题帖子中提到的所有其他位置。

      其实如果你想在runc中进一步使用这个配置文件,你需要修改

      并从“mounts”中删除以下内容

      • “/etc/hosts”
      • “/etc/主机名”
      • “/dev/shm”

      并删除“钩子”

      【讨论】:

        猜你喜欢
        • 2019-06-19
        • 2020-08-27
        • 1970-01-01
        • 1970-01-01
        • 2019-11-22
        • 2021-01-12
        • 1970-01-01
        • 2016-03-07
        • 2017-12-25
        相关资源
        最近更新 更多