44# --------------------------------------------------------------------------------------------
55
66import re
7+ import json
78from knack .util import CLIError
89from knack .log import get_logger
910from .custom import get_docker_command
@@ -88,18 +89,29 @@ def _get_docker_status_and_version(ignore_errors, yes):
8889 docker_daemon_available = False
8990
9091 if docker_daemon_available :
91- logger .warning ("Docker daemon status: available" )
92+ logger .warning (f" { docker_command . title () } daemon status: available" )
9293
9394 # Docker version check
94- output , warning , stderr , succeeded = _subprocess_communicate (
95- [docker_command , "version" , "--format" , "'Docker version {{.Server.Version}}, "
96- "build {{.Server.GitCommit}}, platform {{.Server.Os}}/{{.Server.Arch}}'" ])
95+ output , warning , stderr , succeeded = _subprocess_communicate ([docker_command , "version" , "--format" , "json" ])
9796 if not succeeded :
9897 _handle_error (DOCKER_VERSION_ERROR .append_error_message (stderr ), ignore_errors )
9998 else :
10099 if warning :
101100 logger .warning (warning )
102- logger .warning ("Docker version: %s" , output )
101+ json_output = json .loads (output ).get ("Client" )
102+ logger .warning (
103+ "" .join ([
104+ docker_command .title (),
105+ " version: " ,
106+ json_output .get ("Version" ),
107+ ", build " ,
108+ json_output .get ("GitCommit" )[:7 ],
109+ ", platform " ,
110+ json_output .get ("Os" ),
111+ "/" ,
112+ json_output .get ("Arch" ) if docker_command == "docker" else json_output .get ("OsArch" ).split ("/" )[1 ]
113+ ])
114+ )
103115
104116 # Docker pull check - only if docker daemon is available
105117 if docker_daemon_available :
@@ -114,14 +126,14 @@ def _get_docker_status_and_version(ignore_errors, yes):
114126
115127 if not succeeded :
116128 if stderr and DOCKER_PULL_WRONG_PLATFORM in stderr :
117- print_pass ("Docker pull of '{}'". format ( IMAGE ) )
129+ print_pass (f" { docker_command . title () } pull of '{ IMAGE } '" )
118130 logger .warning ("Image '%s' can be pulled but cannot be used on this platform" , IMAGE )
119131 return
120132 _handle_error (DOCKER_PULL_ERROR .append_error_message (stderr ), ignore_errors )
121133 else :
122134 if warning :
123135 logger .warning (warning )
124- print_pass ("Docker pull of '{}'". format ( IMAGE ) )
136+ print_pass (f" { docker_command . title () } pull of '{ IMAGE } '" )
125137
126138
127139# Get current CLI version
0 commit comments