podman: APIv2: missing NetworkSettings and failure to start a container

/kind bug

Iteration 2 of my APIv2 & docker-py compatibility tests (see #5553 for the first one).

1. I still had to patch the expected minimal version (from 1.9.0 to 1.8.0).

However, problems (2) and (3) from #5553 are fixed!

2. Attempt to run a container failed due to Salt code that expects NetworkSettings -> Networks to be a non-empty dictionary

Network settings:

Docker
sudo docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
0b0f5edd3b6b        bridge              bridge              local
abf694a88ec0        host                host                local
62f65a4a0015        none                null                local

docker network inspect 0b0f5edd3b6b
[
    {
        "Name": "bridge",
        "Id": "0b0f5edd3b6b1047f4bbabe5a037f2faccf7ff2d2aa35bc5a1374d81c1def154",
        "Created": "2020-03-21T05:49:03.575468367-07:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]
Podman
sudo podman network ls
NAME     VERSION   PLUGINS
podman   0.4.0     bridge,portmap,firewall,tuning

sudo podman network inspect podman
[
	{
		"cniVersion": "0.4.0",
		"name": "podman",
		"plugins": [
			{
				"bridge": "cni-podman0",
				"ipMasq": true,
				"ipam": {
					"ranges": [
						[
							{
								"gateway": "10.88.0.1",
								"subnet": "10.88.0.0/16"
							}
						]
					],
					"routes": [
						{
							"dst": "0.0.0.0/0"
						}
					],
					"type": "host-local"
				},
				"isGateway": true,
				"type": "bridge"
			},
			{
				"capabilities": {
					"portMappings": true
				},
				"type": "portmap"
			},
			{
				"type": "firewall"
			},
			{
				"type": "tuning"
			}
		]
	}
]

The data structures look quite different.

Below is the difference between API responses from Docker (19.03.8) and Podman (note the <-- comments):

Docker
REQ http+docker://localhost/v1.40/containers/create?name=ubuntu
{
    "Tty": false,
    "OpenStdin": false,
    "StdinOnce": false,
    "AttachStdin": false,
    "AttachStdout": true,
    "AttachStderr": true,
    "Image": "ubuntu:18.04",
    "NetworkDisabled": false,
    "HostConfig": {
        "NetworkMode": "default"
    }
}
RES {"Id":"59ff788b92417444a765d34d9b6352252d4e1a71cebe0a7c0d9d94e7df0cbd8f","Warnings":[]}

REQ http+docker://localhost/v1.40/containers/json?limit=-1&all=1&size=0&trunc_cmd=0
RES [
    {
        "Id": "59ff788b92417444a765d34d9b6352252d4e1a71cebe0a7c0d9d94e7df0cbd8f",
        "Names": [
            "/ubuntu"
        ],
        "Image": "ubuntu:18.04",
        "ImageID": "sha256:4e5021d210f65ebe915670c7089120120bc0a303b90208592851708c1b8c04bd",
        "Command": "/bin/bash",
        "Created": 1584795153,
        "Ports": [],
        "Labels": {
        },
        "State": "created",
        "Status": "Created",
        "HostConfig": {
            "NetworkMode": "default"
        },
        "NetworkSettings": {               <-- Not empty
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "",
                    "EndpointID": "",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "",
                    "DriverOpts": null
                }
            }
        },
        "Mounts": []
    }
]


REQ http+docker://localhost/v1.40/containers/59ff788b92417444a765d34d9b6352252d4e1a71cebe0a7c0d9d94e7df0cbd8f/json
RES {
    "Id": "59ff788b92417444a765d34d9b6352252d4e1a71cebe0a7c0d9d94e7df0cbd8f",
    "Created": "2020-03-21T12:52:33.720720901Z",
    "Path": "/bin/bash",
    "Args": [],
    "State": {
        "Status": "created",
        "Running": false,
        "Paused": false,
        "Restarting": false,
        "OOMKilled": false,
        "Dead": false,
        "Pid": 0,
        "ExitCode": 0,
        "Error": "",
        "StartedAt": "0001-01-01T00:00:00Z",
        "FinishedAt": "0001-01-01T00:00:00Z"
    },
    "Image": "sha256:4e5021d210f65ebe915670c7089120120bc0a303b90208592851708c1b8c04bd",
    "ResolvConfPath": "",
    "HostnamePath": "",
    "HostsPath": "",
    "LogPath": "",
    "Name": "/ubuntu",
    "RestartCount": 0,
    "Driver": "overlay2",
    "Platform": "linux",
    "MountLabel": "",
    "ProcessLabel": "",
    "AppArmorProfile": "",
    "ExecIDs": null,
    "HostConfig": {
        "Binds": null,
        "ContainerIDFile": "",
        "LogConfig": {
            "Type": "json-file",
            "Config": {
            }
        },
        "NetworkMode": "default",
        "PortBindings": null,
        "RestartPolicy": {
            "Name": "",
            "MaximumRetryCount": 0
        },
        "AutoRemove": false,
        "VolumeDriver": "",
        "VolumesFrom": null,
        "CapAdd": null,
        "CapDrop": null,
        "Capabilities": null,
        "Dns": null,
        "DnsOptions": null,
        "DnsSearch": null,
        "ExtraHosts": null,
        "GroupAdd": null,
        "IpcMode": "private",
        "Cgroup": "",
        "Links": null,
        "OomScoreAdj": 0,
        "PidMode": "",
        "Privileged": false,
        "PublishAllPorts": false,
        "ReadonlyRootfs": false,
        "SecurityOpt": null,
        "UTSMode": "",
        "UsernsMode": "",
        "ShmSize": 67108864,
        "Runtime": "runc",
        "ConsoleSize": [
            0,
            0
        ],
        "Isolation": "",
        "CpuShares": 0,
        "Memory": 0,
        "NanoCpus": 0,
        "CgroupParent": "",
        "BlkioWeight": 0,
        "BlkioWeightDevice": null,
        "BlkioDeviceReadBps": null,
        "BlkioDeviceWriteBps": null,
        "BlkioDeviceReadIOps": null,
        "BlkioDeviceWriteIOps": null,
        "CpuPeriod": 0,
        "CpuQuota": 0,
        "CpuRealtimePeriod": 0,
        "CpuRealtimeRuntime": 0,
        "CpusetCpus": "",
        "CpusetMems": "",
        "Devices": null,
        "DeviceCgroupRules": null,
        "DeviceRequests": null,
        "KernelMemory": 0,
        "KernelMemoryTCP": 0,
        "MemoryReservation": 0,
        "MemorySwap": 0,
        "MemorySwappiness": null,
        "OomKillDisable": false,
        "PidsLimit": null,
        "Ulimits": null,
        "CpuCount": 0,
        "CpuPercent": 0,
        "IOMaximumIOps": 0,
        "IOMaximumBandwidth": 0,
        "MaskedPaths": [
            "/proc/asound",
            "/proc/acpi",
            "/proc/kcore",
            "/proc/keys",
            "/proc/latency_stats",
            "/proc/timer_list",
            "/proc/timer_stats",
            "/proc/sched_debug",
            "/proc/scsi",
            "/sys/firmware"
        ],
        "ReadonlyPaths": [
            "/proc/bus",
            "/proc/fs",
            "/proc/irq",
            "/proc/sys",
            "/proc/sysrq-trigger"
        ]
    },
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/60e2b374a35c4bc6f26d8ab6d0de24efe0247cacb8fa357084d5d841ab60fca8-init/diff:/var/lib/docker/overlay2/5164a85b327d3504c94ff8c459ad5c65a9da0b430b948ebe788251c1002dbbc7/diff:/var/lib/docker/overlay2/4587dab6541269a14050d4ca804b710c70e4f70be4db3d53cd08cc0719169c86/diff:/var/lib/docker/overlay2/65ecf6089d50f2ef086fd4daa6c0ea2e73fcfdbdea83ad8dc9866992d64ec6ee/diff:/var/lib/docker/overlay2/dcc9eb484566cb1d83f0cca6b78df0bc30b125b7886410cabb4f6f8df348a8af/diff",
            "MergedDir": "/var/lib/docker/overlay2/60e2b374a35c4bc6f26d8ab6d0de24efe0247cacb8fa357084d5d841ab60fca8/merged",
            "UpperDir": "/var/lib/docker/overlay2/60e2b374a35c4bc6f26d8ab6d0de24efe0247cacb8fa357084d5d841ab60fca8/diff",
            "WorkDir": "/var/lib/docker/overlay2/60e2b374a35c4bc6f26d8ab6d0de24efe0247cacb8fa357084d5d841ab60fca8/work"
        },
        "Name": "overlay2"
    },
    "Mounts": [],
    "Config": {
        "Hostname": "59ff788b9241",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": true,
        "AttachStderr": true,
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        ],
        "Cmd": [
            "/bin/bash"
        ],
        "Image": "ubuntu:18.04",
        "Volumes": null,
        "WorkingDir": "",
        "Entrypoint": null,
        "OnBuild": null,
        "Labels": {
        }
    },
    "NetworkSettings": {
        "Bridge": "",
        "SandboxID": "",
        "HairpinMode": false,
        "LinkLocalIPv6Address": "",
        "LinkLocalIPv6PrefixLen": 0,
        "Ports": {
        },
        "SandboxKey": "",
        "SecondaryIPAddresses": null,
        "SecondaryIPv6Addresses": null,
        "EndpointID": "",
        "Gateway": "",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "IPAddress": "",
        "IPPrefixLen": 0,
        "IPv6Gateway": "",
        "MacAddress": "",
        "Networks": {               <-- Not empty
            "bridge": {
                "IPAMConfig": null,
                "Links": null,
                "Aliases": null,
                "NetworkID": "",
                "EndpointID": "",
                "Gateway": "",
                "IPAddress": "",
                "IPPrefixLen": 0,
                "IPv6Gateway": "",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "MacAddress": "",
                "DriverOpts": null
            }
        }
    }
}

Podman
REQ http+docker://localhost/v1.40/containers/create?name=ubuntu
{
    "Tty": false,
    "OpenStdin": false,
    "StdinOnce": false,
    "AttachStdin": false,
    "AttachStdout": true,
    "AttachStderr": true,
    "Image": "ubuntu:18.04",
    "NetworkDisabled": false,
    "HostConfig": {
        "NetworkMode": "default"
    }
}
RES {"Id":"8b826a876b72af7fe58ffbeea7720989fcc7d004422a794ccd911eaefe9d0c3c","Warnings":[]}

REQ http+docker://localhost/v1.40/containers/json?limit=-1&all=1&size=0&trunc_cmd=0
RES [
    {
        "Id": "8b826a876b72af7fe58ffbeea7720989fcc7d004422a794ccd911eaefe9d0c3c",
        "Names": [
            "/ubuntu"
        ],
        "Image": "ubuntu:18.04",
        "ImageID": "4e5021d210f65ebe915670c7089120120bc0a303b90208592851708c1b8c04bd",
        "Command": "/bin/bash",
        "Created": 1584789004,
        "Ports": null,
        "Labels": {
        },
        "State": "created",
        "Status": "",
        "NetworkSettings": null,      <-- EMPTY
        "Mounts": null,
        "Name": "",
        "Config": null,
        "NetworkingConfig": null,
        "AdjustCPUShares": false
    }
]

REQ http+docker://localhost/v1.40/containers/190aa780e68a9c1ed8cb25d3f4da05d71dc0f558f7da61c00ff97d0bf7e413f5/json
RES {
    "Id": "190aa780e68a9c1ed8cb25d3f4da05d71dc0f558f7da61c00ff97d0bf7e413f5",
    "Created": "2020-03-21 06:47:05.766619228 -0700 PDT",
    "Path": "",
    "Args": null,
    "State": {
        "Status": "configured",
        "Running": false,
        "Paused": false,
        "Restarting": false,
        "OOMKilled": false,
        "Dead": false,
        "Pid": 0,
        "ExitCode": 0,
        "Error": "",
        "StartedAt": "0001-01-01T00:00:00Z",
        "FinishedAt": "0001-01-01T00:00:00Z"
    },
    "Image": "ubuntu:18.04",
    "ResolvConfPath": "",
    "HostnamePath": "",
    "HostsPath": "",
    "LogPath": "/var/lib/containers/storage/overlay-containers/190aa780e68a9c1ed8cb25d3f4da05d71dc0f558f7da61c00ff97d0bf7e413f5/userdata/ctr.log",
    "Name": "/ubuntu",
    "RestartCount": 0,
    "Driver": "overlay",
    "Platform": "linux",
    "MountLabel": "",
    "ProcessLabel": "",
    "AppArmorProfile": "",
    "ExecIDs": [],
    "HostConfig": {
        "Binds": [],
        "ContainerIDFile": "",
        "LogConfig": {
            "Type": "",
            "Config": null
        },
        "NetworkMode": "default",
        "PortBindings": {
        },
        "RestartPolicy": {
            "Name": "",
            "MaximumRetryCount": 0
        },
        "AutoRemove": false,
        "VolumeDriver": "",
        "VolumesFrom": null,
        "CapAdd": [],
        "CapDrop": [],
        "Capabilities": null,
        "CgroupnsMode": "",
        "Dns": [],
        "DnsOptions": [],
        "DnsSearch": [],
        "ExtraHosts": [],
        "GroupAdd": [],
        "IpcMode": "",
        "Cgroup": "",
        "Links": null,
        "OomScoreAdj": 0,
        "PidMode": "",
        "Privileged": false,
        "PublishAllPorts": false,
        "ReadonlyRootfs": false,
        "SecurityOpt": [],
        "UTSMode": "",
        "UsernsMode": "",
        "ShmSize": 0,
        "Runtime": "oci",
        "ConsoleSize": [
            0,
            0
        ],
        "Isolation": "",
        "CpuShares": 1024,
        "Memory": 0,
        "NanoCpus": 0,
        "CgroupParent": "",
        "BlkioWeight": 0,
        "BlkioWeightDevice": null,
        "BlkioDeviceReadBps": null,
        "BlkioDeviceWriteBps": null,
        "BlkioDeviceReadIOps": null,
        "BlkioDeviceWriteIOps": null,
        "CpuPeriod": 0,
        "CpuQuota": 0,
        "CpuRealtimePeriod": 0,
        "CpuRealtimeRuntime": 0,
        "CpusetCpus": "",
        "CpusetMems": "",
        "Devices": [],
        "DeviceCgroupRules": null,
        "DeviceRequests": null,
        "KernelMemory": 0,
        "KernelMemoryTCP": 0,
        "MemoryReservation": 0,
        "MemorySwap": 0,
        "MemorySwappiness": 0,
        "OomKillDisable": false,
        "PidsLimit": 0,
        "Ulimits": [
            {
                "Name": "RLIMIT_NOFILE",
                "Hard": 1048576,
                "Soft": 1048576
            },
            {
                "Name": "RLIMIT_NPROC",
                "Hard": 1048576,
                "Soft": 1048576
            }
        ],
        "CpuCount": 0,
        "CpuPercent": 0,
        "IOMaximumIOps": 0,
        "IOMaximumBandwidth": 0,
        "MaskedPaths": null,
        "ReadonlyPaths": null
    },
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/containers/storage/overlay/0b21f9cedf302a51263f78af136fcbdd1ed4ff9a909191bd3615d29a3de2bab7/diff:/var/lib/containers/storage/overlay/3c1fcef44107cd6175b87987b91eea89bf7eb2f01c3221da322b787f95c0808a/diff:/var/lib/containers/storage/overlay/c9d6762179607ce7078ee988fe4d5280771e5cf36324cfa8481630ad9808e4bf/diff:/var/lib/containers/storage/overlay/c8be1b8f4d60d99c281fc2db75e0f56df42a83ad2f0b091621ce19357e19d853/diff",
            "UpperDir": "/var/lib/containers/storage/overlay/651a258c669fcc542c498a3847ef995234cfc866e66e01b3fd9722702d896282/diff",
            "WorkDir": "/var/lib/containers/storage/overlay/651a258c669fcc542c498a3847ef995234cfc866e66e01b3fd9722702d896282/work"
        },
        "Name": "overlay"
    },
    "SizeRootFs": 0,
    "Mounts": [],
    "Config": {
        "Hostname": "190aa780e68a",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": false,
        "AttachStderr": false,
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "TERM=xterm",
            "HOSTNAME="
        ],
        "Cmd": [
            "/bin/bash"
        ],
        "Image": "ubuntu:18.04",
        "Volumes": null,
        "WorkingDir": "/",
        "Entrypoint": [],
        "OnBuild": null,
        "Labels": {
        },
        "StopSignal": "\u000f",
        "StopTimeout": 10
    },
    "NetworkSettings": {
        "Bridge": "",
        "SandboxID": "",
        "HairpinMode": false,
        "LinkLocalIPv6Address": "",
        "LinkLocalIPv6PrefixLen": 0,
        "Ports": null,
        "SandboxKey": "",
        "SecondaryIPAddresses": null,
        "SecondaryIPv6Addresses": null,
        "EndpointID": "",
        "Gateway": "",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "IPAddress": "",
        "IPPrefixLen": 0,
        "IPv6Gateway": "",
        "MacAddress": "",
        "Networks": null           <-- EMPTY 
    }
}

3. And finally (after I patched Salt to not crash on (2)), the container fails to start with OCI runtime error

REQ http+docker://localhost/v1.40/containers/ubuntu/start
RES {"cause":"OCI runtime error","message":"args must not be empty: OCI runtime error","response":500}
Docker
REQ http+docker://localhost/v1.40/containers/ubuntu/start
RES
REQ http+docker://localhost/v1.40/containers/ubuntu/json
RES {
    "Id": "59ff788b92417444a765d34d9b6352252d4e1a71cebe0a7c0d9d94e7df0cbd8f",
    "Created": "2020-03-21T12:52:33.720720901Z",
    "Path": "/bin/bash",
    "Args": [],
    "State": {
        "Status": "running",
        "Running": true,
        "Paused": false,
        "Restarting": false,
        "OOMKilled": false,
        "Dead": false,
        "Pid": 27755,
        "ExitCode": 0,
        "Error": "",
        "StartedAt": "2020-03-21T12:52:35.747352749Z",
        "FinishedAt": "0001-01-01T00:00:00Z"
    },
    "Image": "sha256:4e5021d210f65ebe915670c7089120120bc0a303b90208592851708c1b8c04bd",
    "ResolvConfPath": "/var/lib/docker/containers/59ff788b92417444a765d34d9b6352252d4e1a71cebe0a7c0d9d94e7df0cbd8f/resolv.conf",
    "HostnamePath": "/var/lib/docker/containers/59ff788b92417444a765d34d9b6352252d4e1a71cebe0a7c0d9d94e7df0cbd8f/hostname",
    "HostsPath": "/var/lib/docker/containers/59ff788b92417444a765d34d9b6352252d4e1a71cebe0a7c0d9d94e7df0cbd8f/hosts",
    "LogPath": "/var/lib/docker/containers/59ff788b92417444a765d34d9b6352252d4e1a71cebe0a7c0d9d94e7df0cbd8f/59ff788b92417444a765d34d9b6352252d4e1a71cebe0a7c0d9d94e7df0cbd8f-json.log",
    "Name": "/ubuntu",
    "RestartCount": 0,
    "Driver": "overlay2",
    "Platform": "linux",
    "MountLabel": "",
    "ProcessLabel": "",
    "AppArmorProfile": "docker-default",
    "ExecIDs": null,
    "HostConfig": {
        "Binds": null,
        "ContainerIDFile": "",
        "LogConfig": {
            "Type": "json-file",
            "Config": {
            }
        },
        "NetworkMode": "default",
        "PortBindings": null,
        "RestartPolicy": {
            "Name": "",
            "MaximumRetryCount": 0
        },
        "AutoRemove": false,
        "VolumeDriver": "",
        "VolumesFrom": null,
        "CapAdd": null,
        "CapDrop": null,
        "Capabilities": null,
        "Dns": null,
        "DnsOptions": null,
        "DnsSearch": null,
        "ExtraHosts": null,
        "GroupAdd": null,
        "IpcMode": "private",
        "Cgroup": "",
        "Links": null,
        "OomScoreAdj": 0,
        "PidMode": "",
        "Privileged": false,
        "PublishAllPorts": false,
        "ReadonlyRootfs": false,
        "SecurityOpt": null,
        "UTSMode": "",
        "UsernsMode": "",
        "ShmSize": 67108864,
        "Runtime": "runc",
        "ConsoleSize": [
            0,
            0
        ],
        "Isolation": "",
        "CpuShares": 0,
        "Memory": 0,
        "NanoCpus": 0,
        "CgroupParent": "",
        "BlkioWeight": 0,
        "BlkioWeightDevice": null,
        "BlkioDeviceReadBps": null,
        "BlkioDeviceWriteBps": null,
        "BlkioDeviceReadIOps": null,
        "BlkioDeviceWriteIOps": null,
        "CpuPeriod": 0,
        "CpuQuota": 0,
        "CpuRealtimePeriod": 0,
        "CpuRealtimeRuntime": 0,
        "CpusetCpus": "",
        "CpusetMems": "",
        "Devices": null,
        "DeviceCgroupRules": null,
        "DeviceRequests": null,
        "KernelMemory": 0,
        "KernelMemoryTCP": 0,
        "MemoryReservation": 0,
        "MemorySwap": 0,
        "MemorySwappiness": null,
        "OomKillDisable": false,
        "PidsLimit": null,
        "Ulimits": null,
        "CpuCount": 0,
        "CpuPercent": 0,
        "IOMaximumIOps": 0,
        "IOMaximumBandwidth": 0,
        "MaskedPaths": [
            "/proc/asound",
            "/proc/acpi",
            "/proc/kcore",
            "/proc/keys",
            "/proc/latency_stats",
            "/proc/timer_list",
            "/proc/timer_stats",
            "/proc/sched_debug",
            "/proc/scsi",
            "/sys/firmware"
        ],
        "ReadonlyPaths": [
            "/proc/bus",
            "/proc/fs",
            "/proc/irq",
            "/proc/sys",
            "/proc/sysrq-trigger"
        ]
    },
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/60e2b374a35c4bc6f26d8ab6d0de24efe0247cacb8fa357084d5d841ab60fca8-init/diff:/var/lib/docker/overlay2/5164a85b327d3504c94ff8c459ad5c65a9da0b430b948ebe788251c1002dbbc7/diff:/var/lib/docker/overlay2/4587dab6541269a14050d4ca804b710c70e4f70be4db3d53cd08cc0719169c86/diff:/var/lib/docker/overlay2/65ecf6089d50f2ef086fd4daa6c0ea2e73fcfdbdea83ad8dc9866992d64ec6ee/diff:/var/lib/docker/overlay2/dcc9eb484566cb1d83f0cca6b78df0bc30b125b7886410cabb4f6f8df348a8af/diff",
            "MergedDir": "/var/lib/docker/overlay2/60e2b374a35c4bc6f26d8ab6d0de24efe0247cacb8fa357084d5d841ab60fca8/merged",
            "UpperDir": "/var/lib/docker/overlay2/60e2b374a35c4bc6f26d8ab6d0de24efe0247cacb8fa357084d5d841ab60fca8/diff",
            "WorkDir": "/var/lib/docker/overlay2/60e2b374a35c4bc6f26d8ab6d0de24efe0247cacb8fa357084d5d841ab60fca8/work"
        },
        "Name": "overlay2"
    },
    "Mounts": [],
    "Config": {
        "Hostname": "59ff788b9241",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": true,
        "AttachStderr": true,
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        ],
        "Cmd": [
            "/bin/bash"
        ],
        "Image": "ubuntu:18.04",
        "Volumes": null,
        "WorkingDir": "",
        "Entrypoint": null,
        "OnBuild": null,
        "Labels": {
        }
    },
    "NetworkSettings": {
        "Bridge": "",
        "SandboxID": "75d19db2a37d0f52339e80cbae3519fc7369414f4ba5edab5f969f02f1d6d7f1",
        "HairpinMode": false,
        "LinkLocalIPv6Address": "",
        "LinkLocalIPv6PrefixLen": 0,
        "Ports": {
        },
        "SandboxKey": "/var/run/docker/netns/75d19db2a37d",
        "SecondaryIPAddresses": null,
        "SecondaryIPv6Addresses": null,
        "EndpointID": "39245ba9b166c0e74df4e11e6acb5c5e4f37dfee069e9dffe2aea9bd9f66b184",
        "Gateway": "172.17.0.1",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "IPAddress": "172.17.0.2",
        "IPPrefixLen": 16,
        "IPv6Gateway": "",
        "MacAddress": "02:42:ac:11:00:02",
        "Networks": {
            "bridge": {
                "IPAMConfig": null,
                "Links": null,
                "Aliases": null,
                "NetworkID": "0b0f5edd3b6b1047f4bbabe5a037f2faccf7ff2d2aa35bc5a1374d81c1def154",
                "EndpointID": "39245ba9b166c0e74df4e11e6acb5c5e4f37dfee069e9dffe2aea9bd9f66b184",
                "Gateway": "172.17.0.1",
                "IPAddress": "172.17.0.2",
                "IPPrefixLen": 16,
                "IPv6Gateway": "",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "MacAddress": "02:42:ac:11:00:02",
                "DriverOpts": null
            }
        }
    }
}

Output of podman version:

Version:            1.8.2
RemoteAPI Version:  1
Go Version:         go1.10.1
OS/Arch:            linux/amd64

Output of podman info --debug:

podman info --debug
debug:
  compiler: gc
  git commit: ""
  go version: go1.10.1
  podman version: 1.8.2
host:
  BuildahVersion: 1.14.3
  CgroupVersion: v1
  Conmon:
    package: 'conmon: /usr/libexec/podman/conmon'
    path: /usr/libexec/podman/conmon
    version: 'conmon version 2.0.14, commit: '
  Distribution:
    distribution: ubuntu
    version: "18.04"
  MemFree: 101597184
  MemTotal: 499093504
  OCIRuntime:
    name: runc
    package: 'containerd.io: /usr/bin/runc'
    path: /usr/bin/runc
    version: |-
      runc version 1.0.0-rc10
      commit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
      spec: 1.0.1-dev
  SwapFree: 926937088
  SwapTotal: 1027600384
  arch: amd64
  cpus: 1
  eventlogger: journald
  hostname: minion1
  kernel: 4.15.0-72-generic
  os: linux
  rootless: false
  uptime: 3h 46m 56.31s (Approximately 0.12 days)
registries:
  search:
  - docker.io
  - quay.io
store:
  ConfigFile: /etc/containers/storage.conf
  ContainerStore:
    number: 1
  GraphDriverName: overlay
  GraphOptions: {}
  GraphRoot: /var/lib/containers/storage
  GraphStatus:
    Backing Filesystem: extfs
    Native Overlay Diff: "true"
    Supports d_type: "true"
    Using metacopy: "false"
  ImageStore:
    number: 1
  RunRoot: /var/run/containers/storage
  VolumePath: /var/lib/containers/storage/volumes

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 1
  • Comments: 55 (31 by maintainers)

Most upvoted comments

I did a little bit more digging, and while Salt can’t pass an empty NetworkMode (because of the default fallback value in docker-py), it can provide an explicit network_mode keyword:

sudo salt-call docker.run_container registry.fedoraproject.org/f29/httpd name=httpd bg=true replace=true network_mode=podman port_bindings=8080:8080/tcp

This avoids the 500 error when starting the container:

GET http+docker://localhost/v1.35/version
GET http+docker://localhost/v1.35/images/registry.fedoraproject.org/f29/httpd/json
GET http+docker://localhost/v1.35/containers/httpd/json
POST http+docker://localhost/v1.35/containers/create?name=httpd
     {"ExposedPorts": {"8080/tcp": {}}, "Tty": false, "OpenStdin": false, "StdinOnce": false,
      "AttachStdin": false, "AttachStdout": true, "AttachStderr": true,
      "Image": "registry.fedoraproject.org/f29/httpd", "NetworkDisabled": false,
      "HostConfig": {"NetworkMode": "podman", "PortBindings": 
      {"8080/tcp": [{"HostIp": "", "HostPort": "8080"}]}}}
GET http+docker://localhost/v1.35/containers/9edf973ab566ae9cae353869391ec4b51634739c1df2818050d8d51a8ac3d5a7/json
POST http+docker://localhost/v1.35/containers/9edf973ab566ae9cae353869391ec4b51634739c1df2818050d8d51a8ac3d5a7/start
GET http+docker://localhost/v1.35/containers/9edf973ab566ae9cae353869391ec4b51634739c1df2818050d8d51a8ac3d5a7/json
GET http+docker://localhost/v1.35/containers/json?limit=-1&all=1&size=0&trunc_cmd=0
GET http+docker://localhost/v1.35/containers/9edf973ab566ae9cae353869391ec4b51634739c1df2818050d8d51a8ac3d5a7/json
GET http+docker://localhost/v1.35/containers/json?limit=-1&all=1&size=0&trunc_cmd=0
GET http+docker://localhost/v1.35/containers/9edf973ab566ae9cae353869391ec4b51634739c1df2818050d8d51a8ac3d5a7/json

And finally:

curl -s http://localhost:8080 | head

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<title>Test Page for the Apache HTTP Server on Fedora</title>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<style type="text/css">
			/*<![CDATA[*/
			body {
				background-color: #fff;

So I can call it a success! 🎉

https://github.com/containers/libpod/pull/6835 this will fix the error which:

args must not be empty

If this be merged, maybe you could try start containers to test

@max-arnold @rsommer @baude is this fixed in the main branch now?

@max-arnold should be available now.