名称¶
podman-generate-spec - 根据容器或 Pod 生成 Specgen JSON
简介¶
podman generate spec [选项] *容器 | Pod
描述¶
podman generate spec 从 Podman 容器和 Pod 生成 SpecGen JSON。此 JSON 可以打印到文件、直接打印到命令行,或两者兼而有之。
此 JSON 可用作 Podman API 的输入,特别是用于 Podman 容器和 Pod 的创建。Specgen 是 Podman 的内部结构,用于制定新的容器相关实体。
选项¶
--compact, -c¶
以紧凑的单行格式打印输出。当将数据通过管道传输到 Podman API 时,这很有用。
--filename, -f=文件名¶
输出到给定文件。
--name, -n¶
重命名 Pod 或容器,使其不与现有实体冲突。当 JSON 在源 Pod 或容器被删除之前使用时,这很有帮助。
示例¶
根据容器生成 Specgen JSON。
$ podman generate spec container1
{
"name": "container1-clone",
"command": [
"/bin/sh"
],
"env": {
"PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"container": "podman"
},
"sdnotifyMode": "container",
"pidns": {
"nsmode": "default"
},
"utsns": {
"nsmode": "private"
},
"containerCreateCommand": [
"podman",
"run",
"--name",
"container1",
"cea2ff433c61"
],
"init_container_type": "",
"image": "cea2ff433c610f5363017404ce989632e12b953114fefc6f597a58e813c15d61",
"ipcns": {
"nsmode": "default"
},
"shm_size": 65536000,
"shm_size_systemd": 0,
"selinux_opts": [
"disable"
],
"userns": {
"nsmode": "default"
},
"idmappings": {
"HostUIDMapping": true,
"HostGIDMapping": true,
"UIDMap": null,
"GIDMap": null,
"AutoUserNs": false,
"AutoUserNsOpts": {
"Size": 0,
"InitialSize": 0,
"PasswdFile": "",
"GroupFile": "",
"AdditionalUIDMappings": null,
"AdditionalGIDMappings": null
}
},
"umask": "0022",
"cgroupns": {
"nsmode": "default"
},
"netns": {
"nsmode": "slirp4netns"
},
"Networks": null,
"use_image_hosts": false,
"resource_limits": {}
}
根据容器生成 Specgen JSON。输出为单行。
$ podman generate spec --compact container1
{"name":"container1-clone","command":["/bin/sh"],...
根据容器生成 Specgen JSON,将输出写入指定文件。
$ podman generate spec --filename output.json container1
output.json
$ cat output.json
{
"name": "container1-clone",
"command": [
"/bin/sh"
],
"env": {
"PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"container": "podman"
},
"sdnotifyMode": "container",
"pidns": {
"nsmode": "default"
},
"utsns": {
"nsmode": "private"
},
"containerCreateCommand": [
"podman",
"run",
"--name",
"container1",
"cea2ff433c61"
],
"init_container_type": "",
"image": "cea2ff433c610f5363017404ce989632e12b953114fefc6f597a58e813c15d61",
"ipcns": {
"nsmode": "default"
},
"shm_size": 65536000,
"shm_size_systemd": 0,
"selinux_opts": [
"disable"
],
"userns": {
"nsmode": "default"
},
"idmappings": {
"HostUIDMapping": true,
"HostGIDMapping": true,
"UIDMap": null,
"GIDMap": null,
"AutoUserNs": false,
"AutoUserNsOpts": {
"Size": 0,
"InitialSize": 0,
"PasswdFile": "",
"GroupFile": "",
"AdditionalUIDMappings": null,
"AdditionalGIDMappings": null
}
},
"umask": "0022",
"cgroupns": {
"nsmode": "default"
},
"netns": {
"nsmode": "slirp4netns"
},
"Networks": null,
"use_image_hosts": false,
"resource_limits": {}
}