diff --git a/doc/source/command-objects/image.rst b/doc/source/command-objects/image.rst
index 1528676091..94745e06c8 100644
--- a/doc/source/command-objects/image.rst
+++ b/doc/source/command-objects/image.rst
@@ -167,6 +167,7 @@ List available images
         [--property <key=value>]
         [--long]
         [--sort <key>[:<direction>]]
+        [--limit <limit>]
 
 .. option:: --public
 
@@ -195,6 +196,10 @@ List available images
     Sort output by selected keys and directions(asc or desc) (default: asc),
     multiple keys and directions can be specified separated by comma
 
+.. option:: --limit <limit>
+
+    Maximum number of images to display.
+
 image save
 ----------
 
diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py
index 842c6f2007..67d0e7f31d 100644
--- a/openstackclient/image/v2/image.py
+++ b/openstackclient/image/v2/image.py
@@ -431,6 +431,12 @@ class ListImage(command.Lister):
                  "(default: asc), multiple keys and directions can be "
                  "specified separated by comma",
         )
+        parser.add_argument(
+            "--limit",
+            metavar="<limit>",
+            type=int,
+            help="Maximum number of images to display.",
+        )
         return parser
 
     def take_action(self, parsed_args):
@@ -443,6 +449,8 @@ class ListImage(command.Lister):
             kwargs['private'] = True
         if parsed_args.shared:
             kwargs['shared'] = True
+        if parsed_args.limit:
+            kwargs['limit'] = parsed_args.limit
 
         if parsed_args.long:
             columns = (
diff --git a/openstackclient/tests/image/v2/test_image.py b/openstackclient/tests/image/v2/test_image.py
index b02b379511..3e31d0ad62 100644
--- a/openstackclient/tests/image/v2/test_image.py
+++ b/openstackclient/tests/image/v2/test_image.py
@@ -655,6 +655,23 @@ class TestImageList(TestImage):
         self.assertEqual(self.columns, columns)
         self.assertEqual(self.datalist, tuple(data))
 
+    def test_image_list_limit_option(self):
+        arglist = [
+            '--limit', str(1),
+        ]
+        verifylist = [
+            ('limit', 1),
+        ]
+        parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+        columns, data = self.cmd.take_action(parsed_args)
+        self.api_mock.image_list.assert_called_with(
+            limit=1,
+        )
+
+        self.assertEqual(self.columns, columns)
+        self.assertEqual(len(self.datalist), len(tuple(data)))
+
 
 class TestRemoveProjectImage(TestImage):
 
diff --git a/releasenotes/notes/bug-1540988-17841cfd5accf7f5.yaml b/releasenotes/notes/bug-1540988-17841cfd5accf7f5.yaml
new file mode 100644
index 0000000000..56b502eb5b
--- /dev/null
+++ b/releasenotes/notes/bug-1540988-17841cfd5accf7f5.yaml
@@ -0,0 +1,6 @@
+---
+features:
+  - |
+    Add ``--limit`` option to ``image list`` to limit the number of images
+    in output.
+    [Bug `1540988 <https://bugs.launchpad.net/bugs/1540988>`_]