PL/Container fails with newer docker versions due to docker API version mismatch
search cancel

PL/Container fails with newer docker versions due to docker API version mismatch

book

Article ID: 425464

calendar_today

Updated On:

Products

VMware Tanzu Data Suite VMware Tanzu Greenplum VMware Tanzu Greenplum / Gemfire

Issue/Introduction

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.

 

Cause

 

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.

 

Resolution

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.