When using PL/Container with newer Docker Engine versions, customers may encounter failures while executing PL/Container functions. The error typically indicates that the docker API version used by PL/Container is older than the minimum API version required by the docker daemon.
Example error:
test=# SELECT * from dummyPython() ;
ERROR: plcontainer: backend create error (containers.c:397)
DETAIL: Failed to create container, return code: 400, detail: {"message":"client version 1.27 is too old. Minimum supported API version is 1.44, please upgrade your client to a newer version"}
CONTEXT: PLContainer function "dummypython"
test=# \q
This issue can appear after upgrading the operating system or Docker Engine, even though the docker CLI itself reports a newer API version. PL/Container communicates directly with the Docker daemon using its own Docker API client, which may not match the daemon’s minimum supported API level.
Earlier versions of PL/Container use an older default Docker API version.
Newer Docker Engine releases enforce a higher minimum supported Docker API version.
When the Docker daemon no longer supports the API version used by PL/Container, container creation requests are rejected, causing PL/Container function execution to fail.
Workaround:
Customers can set env DOCKER_API_VERSION=1.27 or they can downgrade the docker version.
Fix:
In an upcoming release of PL/Container, the default Docker API version will be upgraded to v1.44, which corresponds to Docker Engine 25.