@@ -401,21 +401,34 @@ public static DockerClient getClientForConfig(TransportConfig transportConfig) {
401401 throw new IllegalArgumentException ("Unknown transport type '" + transportType + "'" );
402402 }
403403
404- DefaultDockerClientConfig .Builder configBuilder = DefaultDockerClientConfig .createDefaultConfigBuilder ();
404+ DefaultDockerClientConfig .Builder configBuilder = DefaultDockerClientConfig
405+ .createDefaultConfigBuilder ()
406+ .withDockerHost (transportConfig .getDockerHost ().toString ());
405407
406- if (configBuilder .build ().getApiVersion () == RemoteApiVersion .UNKNOWN_VERSION ) {
407- configBuilder .withApiVersion (RemoteApiVersion .VERSION_1_44 );
408- }
409408 Map <String , String > headers = new HashMap <>();
410409 headers .put ("x-tc-sid" , DockerClientFactory .SESSION_ID );
411410 headers .put ("User-Agent" , String .format ("tc-java/%s" , DockerClientFactory .TESTCONTAINERS_VERSION ));
412411
413- return DockerClientImpl .getInstance (
414- new AuthDelegatingDockerClientConfig (
415- configBuilder .withDockerHost (transportConfig .getDockerHost ().toString ()).build ()
416- ),
417- new HeadersAddingDockerHttpClient (dockerHttpClient , headers )
418- );
412+ try {
413+ if (configBuilder .build ().getApiVersion () == RemoteApiVersion .UNKNOWN_VERSION ) {
414+ configBuilder .withApiVersion (RemoteApiVersion .VERSION_1_44 );
415+ }
416+ DockerClient client = DockerClientImpl .getInstance (
417+ new AuthDelegatingDockerClientConfig (configBuilder .build ()),
418+ new HeadersAddingDockerHttpClient (dockerHttpClient , headers )
419+ );
420+ log .debug ("Pinging Docker API version 1.44." );
421+ client .pingCmd ().exec ();
422+ return client ;
423+ } catch (Exception ex ) {
424+ log .debug ("Fallback to Docker API version 1.32." );
425+ return DockerClientImpl .getInstance (
426+ new AuthDelegatingDockerClientConfig (
427+ configBuilder .withApiVersion (RemoteApiVersion .VERSION_1_32 ).build ()
428+ ),
429+ new HeadersAddingDockerHttpClient (dockerHttpClient , headers )
430+ );
431+ }
419432 }
420433
421434 public synchronized String getDockerHostIpAddress () {
0 commit comments