diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py
index 4031952bc4..ac29da9cc5 100644
--- a/openstackclient/image/v2/image.py
+++ b/openstackclient/image/v2/image.py
@@ -485,7 +485,6 @@ class ListImage(command.Lister):
         if parsed_args.marker:
             kwargs['marker'] = utils.find_resource(image_client.images,
                                                    parsed_args.marker).id
-
         if parsed_args.long:
             columns = (
                 'ID',
@@ -518,7 +517,19 @@ class ListImage(command.Lister):
             column_headers = columns
 
         # List of image data received
-        data = image_client.api.image_list(**kwargs)
+        data = []
+        if 'marker' in kwargs:
+            data = image_client.api.image_list(**kwargs)
+        else:
+            # No pages received yet, so start the page marker at None.
+            marker = None
+            while True:
+                page = image_client.api.image_list(marker=marker, **kwargs)
+                if not page:
+                    break
+                data.extend(page)
+                # Set the marker to the id of the last item we received
+                marker = page[-1]['id']
 
         if parsed_args.property:
             # NOTE(dtroyer): coerce to a list to subscript it in py3
diff --git a/openstackclient/tests/unit/image/v2/test_image.py b/openstackclient/tests/unit/image/v2/test_image.py
index 2f2212e4c3..a054e513d9 100644
--- a/openstackclient/tests/unit/image/v2/test_image.py
+++ b/openstackclient/tests/unit/image/v2/test_image.py
@@ -535,7 +535,9 @@ class TestImageList(TestImage):
         # returns a tuple containing the column names and an iterable
         # containing the data to be listed.
         columns, data = self.cmd.take_action(parsed_args)
-        self.api_mock.image_list.assert_called_with()
+        self.api_mock.image_list.assert_called_with(
+            marker=self._image.id,
+        )
 
         self.assertEqual(self.columns, columns)
         self.assertEqual(self.datalist, tuple(data))
@@ -558,6 +560,7 @@ class TestImageList(TestImage):
         columns, data = self.cmd.take_action(parsed_args)
         self.api_mock.image_list.assert_called_with(
             public=True,
+            marker=self._image.id,
         )
 
         self.assertEqual(self.columns, columns)
@@ -581,6 +584,7 @@ class TestImageList(TestImage):
         columns, data = self.cmd.take_action(parsed_args)
         self.api_mock.image_list.assert_called_with(
             private=True,
+            marker=self._image.id,
         )
 
         self.assertEqual(self.columns, columns)
@@ -604,6 +608,7 @@ class TestImageList(TestImage):
         columns, data = self.cmd.take_action(parsed_args)
         self.api_mock.image_list.assert_called_with(
             shared=True,
+            marker=self._image.id,
         )
 
         self.assertEqual(self.columns, columns)
@@ -622,7 +627,9 @@ class TestImageList(TestImage):
         # returns a tuple containing the column names and an iterable
         # containing the data to be listed.
         columns, data = self.cmd.take_action(parsed_args)
-        self.api_mock.image_list.assert_called_with()
+        self.api_mock.image_list.assert_called_with(
+            marker=self._image.id,
+        )
 
         collist = (
             'ID',
@@ -670,7 +677,9 @@ class TestImageList(TestImage):
         # returns a tuple containing the column names and an iterable
         # containing the data to be listed.
         columns, data = self.cmd.take_action(parsed_args)
-        self.api_mock.image_list.assert_called_with()
+        self.api_mock.image_list.assert_called_with(
+            marker=self._image.id,
+        )
         sf_mock.assert_called_with(
             [self._image],
             attr='a',
@@ -693,7 +702,9 @@ class TestImageList(TestImage):
         # returns a tuple containing the column names and an iterable
         # containing the data to be listed.
         columns, data = self.cmd.take_action(parsed_args)
-        self.api_mock.image_list.assert_called_with()
+        self.api_mock.image_list.assert_called_with(
+            marker=self._image.id,
+        )
         si_mock.assert_called_with(
             [self._image],
             'name:asc'
@@ -712,7 +723,7 @@ class TestImageList(TestImage):
 
         columns, data = self.cmd.take_action(parsed_args)
         self.api_mock.image_list.assert_called_with(
-            limit=1,
+            limit=1, marker=self._image.id
         )
 
         self.assertEqual(self.columns, columns)