[CORD-2871]
Fix protobuf integration in prep for CORD-2276

Change-Id: I67ffa17d97d97e9a226269e99de76c236a431dd1
diff --git a/utils/dockerhelpers.py b/utils/dockerhelpers.py
index 2961e37..b924628 100644
--- a/utils/dockerhelpers.py
+++ b/utils/dockerhelpers.py
@@ -14,12 +14,31 @@
 # limitations under the License.
 #
 import os
+import sys
+from distutils.version import LooseVersion
 
-from docker import Client
 from structlog import get_logger
+log = get_logger()
+
+# handle the python docker v1 to v2 API differences
+try:
+    from docker import __version__ as docker_version
+
+    if LooseVersion(docker_version) < LooseVersion('2.0.0'):
+        log.error("Unsupported python docker module!"
+                  "Please upgrade to docker 2.x or later")
+
+        # <2.x compatible import
+        from docker import Client as DockerClient
+    else:
+        # >2.x compatible import
+        from docker import APIClient as DockerClient
+
+except ImportError:
+    log.error("Unable to load python docker module!")
+    sys.exit(1)
 
 docker_socket = os.environ.get('DOCKER_SOCK', 'unix://tmp/docker.sock')
-log = get_logger()
 
 
 def get_my_containers_name():
@@ -33,7 +52,7 @@
     my_container_id = os.environ.get('HOSTNAME', None)
 
     try:
-        docker_cli = Client(base_url=docker_socket)
+        docker_cli = DockerClient(base_url=docker_socket)
         info = docker_cli.inspect_container(my_container_id)
 
     except Exception, e:
@@ -42,4 +61,4 @@
 
     name = info['Name'].lstrip('/')
 
-    return name
\ No newline at end of file
+    return name