<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def list_containers(list_all=True, short_image=True, full_ids=False, full_cmd=False):
 """ Lists containers on the Docker remote host, similar to ``docker ps``. :param list_all: Shows all containers. Default is ``False``, which omits exited containers. :type list_all: bool :param short_image: Hides the repository prefix for preserving space. Default is ``True``. :type short_image: bool :param full_ids: Shows the full image ids. When ``False`` (default) only shows the first 12 characters. :type full_ids: bool :param full_cmd: Shows the full container command. When ``False`` (default) only shows the first 25 characters. :type full_cmd: bool """

    containers = docker_fabric().containers(all=list_all)
    _format_output_table(containers, CONTAINER_COLUMNS, full_ids, full_cmd, short_image)