"docker run -it ubuntu" won't run on PS ISE, but PS

Expected behavior

docker run -it ubuntu runs on PowerShell ISE, CMD.exe as well as PowerShell.exe

Actual behavior

docker run -it ubuntu throws error on PowerShell ISE, but executes correctly on PowerShell.exe

PowerShell:
PS C:\Users\carst> docker run -it ubuntu
root@a86540e5cdae:/#

PowerShell-ISE:
PS C:\Users\carst> docker run -it ubuntu
docker : panic: runtime error: invalid memory address or nil pointer dereference
In Zeile:1 Zeichen:1

  • docker run -it ubuntu
  •   + CategoryInfo          : NotSpecified: (panic: runtime ...ter dereference:String) [], RemoteException
      + FullyQualifiedErrorId : NativeCommandError
    
    

[signal 0xc0000005 code=0x0 addr=0x28 pc=0x4ac9f6]
goroutine 38 [running]:
github.com/Sirupsen/logrus.(*Logger).Debugf
(0x0, 0x15da920, 0x4e, 0xc0823b7bc0, 0x3,
0x3)

/go/src/github.com/docker/docker/vendor/src/github.com/Sirupsen/logrus/logger.go:74 +0x26
github.com/docker/docker/pkg/term/windows.readInputEvents(0xb98, 0x8000,
0x0, 0x0, 0x0,
0x0, 0x0)

/go/src/github.com/docker/docker/pkg/term/windows/ansi_reader.go:115 +
0x262
github.com/docker/docker/pkg/term/windows.(*ansiReader).Read(0xc08232b950, 0xc0823c2000, 0x8000, 0x8000
, 0x8000, 0x0, 0x0)
/go/src/github.com/docker/docker/pkg/term/windows/ansi_reader.go:74
+0x47b
io.copyBuffer(0x21d5f38, 0xc0822a8d40
, 0x2ab0220, 0xc08232b950, 0xc0823c2000
, 0x8000, 0x8000,
0x0, 0x0,
0x0)
/usr/local/go/src/io/io.go:381 +0x24e
io.Copy(
0x21d5f38, 0xc0822a8d40, 0x2ab0220,
0xc08232b950, 0xc08232b950, 0x0,
0x0)
/usr/local/go/src/io/io.go:
351 +0x6b
github.com/docker/docker/api/client.(*DockerCli).holdHijackedConnection.func2(0x21d5338,
0xc08232b950, 0xc082398240, 0xc0823a85a0)
/go/src/github.com/docker/docker/api/client/hijack.go:30 +
0xdd
created by github.com/docker/docker/api/client.(*DockerCli).holdHijackedConnection
/go/src/github.com/docker/docker/api/client/hijack.go:38 +0x13c
goroutine 1 [select]:
github.com/docker/engine-api/client/transport/cancellable.Do
(0x2199488, 0xc082002e40
, 0x21d5e60, 0xc08233ee40
, 0xc0823be000, 0x0, 0x0,
0x0)
/go/src/github.com/docker/docker/vendor/src/github.com/docker/engine-api/client/transport/cancellable/cancellable.go:56
+0x4a3
github.com/docker/engine-api/client.(*Client).sendClientRequest(0xc0822d2f00, 0x2199488
, 0xc082002e40, 0x13c98d0, 0x4
, 0xc0823a81e0, 0x52, 0x0
, 0x21d5e08, 0xc08239c070
, …)
/go/src/github.com/docker/docker/vendor/src/github.com/docker/engine-api/client/request.go:93
+0x461
github.com/docker/engine-api/client.(*Client).sendRequest(0xc0822d2f00,
0x2199488, 0xc082002e40,
0x13c98d0, 0x4, 0xc0823a81e0
, 0x52, 0x0, 0x0, 0x0, …)
/go/src/github.com/docker/docker/vendor/src/github.com/docker/engine-api/client/request.go:71 +0x2b6
github.com/docker/engine-api/client.(*Client).post(0xc0822d2f00, 0x2199488, 0xc082002e40, 0xc0823a81e0, 0x52, 0x0, 0x0, 0x0, 0x0,
0x10, …)
/go/src/github.com/docker/docker/vendor/src/github.com/docker/engine-api/client/request.go:36 +
0xbb
github.com/docker/engine-api/client.(*Client).ContainerStart(0xc0822d2f00, 0x2199488, 0xc082002e40, 0xc0822ba600, 0x40, 0x0,
0x0)
/go/src/github.com/docker/docker/vendor/src/github.com/docker/engine-api/client/container_start.go:7 +0xdf
github.com/docker/docker/api/client.(*DockerCli).CmdRun(0xc0822cd180, 0xc082006320, 0x2
, 0x2, 0x0, 0x0)
/go/src/github.com/docker/docker/api/client/run.go:
231 +0xf14
reflect.callMethod(
0xc082346240, 0xc08216dc88)
/usr/local/go/src/reflect/value.go:628 +
0x203
reflect.methodValueCall(0xc082006320, 0x2,
0x2, 0x1,
0xc082346240, 0x0, 0x0,
0xc082346240, 0x0,
0x4713fb, …)
/usr/local/go/src/reflect/asm_amd64.s:29
+0x3d
github.com/docker/docker/cli.(*Cli).Run(0xc0822ebd70, 0xc082006310
, 0x3, 0x3
, 0x0, 0x0)
/go/src/github.com/docker/docker/cli/cli.go:89 +0x38a
main.main()
/go/src/github.com/docker/docker/docker/docker.go:63 +0x35a
goroutine 17 [syscall
, locked to thread]:
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:
1721 +0x1
goroutine 6 [syscall
]:
os/signal.loop()
/usr/local/go/src/os/signal/signal_unix.go:22
+0x1f
created by os/signal.init.1
/usr/local/go/src/os/signal/signal_unix.go:
28 +0x3e
goroutine 34 [chan receive]:
github.com/docker/docker/pkg/term.restoreAtInterrupt.func1
(0xc0823a8060, 0xb98, 0xc082398100)
/go/src/github.com/docker/docker/pkg/term/term_windows.go:301 +0x4a
created by github.com/docker/docker/pkg/term.restoreAtInterrupt

/go/src/github.com/docker/docker/pkg/term/term_windows.go:304 +
0xee
goroutine 22 [syscall
, locked to thread]:
syscall.Syscall6(0x7ff82106d5c0, 0x5
, 0x1e8, 0xc08238ff54
, 0xc08238ff58, 0xc08238ff60, 0xffffffff
, 0x0, 0xc08238ff78
, 0x1, …)
/usr/local/go/src/runtime/syscall_windows.go:139
+0x5c
github.com/Microsoft/go-winio.getQueuedCompletionStatus(0x1e8, 0xc08238ff54,
0xc08238ff58, 0xc08238ff60, 0xffffffff, 0x0, 0x0)
/go/src/github.com/docker/docker/vendor/src/github.com/Microsoft/go-winio/zsyscall.go:72 +
0x99
github.com/Microsoft/go-winio.ioCompletionProcessor(0x1e8)
/go/src/github.com/docker/docker/vendor/src/github.com/Microsoft/go-winio/file.go:127 +0x7c
created by github.com/Microsoft/go-winio.initIo
/go/src/github.com/docker/docker/vendor/src/github.com/Microsoft/go-winio/file.go:55
+0xb3
goroutine 23 [
chan receive]:
github.com/Microsoft/go-winio.(*win32File).asyncIo(0xc08234d900,
0xc0822b3b30, 0x0, 0x0,
0x0, 0xc000000000,
0x2190050, 0xc0822a5640, 0x41b009,
0x0, …)
/go/src/github.com/docker/docker/vendor/src/github.com/Microsoft/go-winio/file.go:
165 +0x176
github.com/Microsoft/go-winio.(*win32File).Read(0xc08234d900,
0xc082343000, 0x1000, 0x1000
, 0xee75c0, 0x0
, 0x0)
/go/src/github.com/docker/docker/vendor/src/github.com/Microsoft/go-winio/file.go:188 +0x15f
github.com/Microsoft/go-winio.(*win32MessageBytePipe).Read(0xc082384820, 0xc082343000, 0x1000, 0x1000, 0x40c855, 0x0, 0x0)
/go/src/github.com/docker/docker/vendor/src/github.com/Microsoft/go-winio/pipe.go
:114
+0x94
net/http.noteEOFReader.Read
(0x21d5ee8, 0xc082384820,
0xc082314318
, 0xc082343000,
0x1000, 0x1000, 0x0, 0x0, 0x0
)
/usr/local/go/src/net/http/transport.go:1370 +
0x6e
net/http.(*noteEOFReader).Read(
0xc082384840, 0xc082343000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
:126 +0xd7
bufio.(*Reader).fill(0xc0822d3500)
/usr/local/go/src/bufio/bufio.go:97 +0x1f0
bufio.(*Reader).Peek(0xc0822d3500, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:132 +0xd3
net/http.(*persistConn).readLoop(0xc0823142c0)
/usr/local/go/src/net/http/transport.go:876 +0xfe
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:685 +0xc7f
goroutine 24 [select]:
net/http.(*persistConn).writeLoop(0xc0823142c0)
/usr/local/go/src/net/http/transport.go:1009 +0x413
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:686 +0xca4
goroutine 35 [select]:
github.com/docker/docker/api/client.(*DockerCli).holdHijackedConnection(0xc0822cd180, 0x1, 0x21d5338, 0xc08232b950, 0x21942c0, 0xc08202a010, 0x21942c0, 0xc08202a010,
0x21d5e88, 0xc0822a8d40, …)
/go/src/github.com/docker/docker/api/client/hijack.go:40 +0x4c1
github.com/docker/docker/api/client.(*DockerCli).CmdRun.func2(0x0, 0x0)
/go/src/github.com/docker/docker/api/client/run.go:218 +0xda
github.com/docker/docker/pkg/promise.Go.func1(0xc0823a8180, 0xc0823a8120)
/go/src/github.com/docker/docker/pkg/promise/promise.go:8 +0x24
created by github.com/docker/docker/pkg/promise.Go
/go/src/github.com/docker/docker/pkg/promise/promise.go:9 +0x64
goroutine 36 [select]:
net/http.(*persistConn).roundTrip(0xc0823142c0, 0xc0823941b0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:1164 +0xb14
net/http.(*Transport).RoundTrip(0xc082330240, 0xc0823be000, 0xd8, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:235 +0x537
net/http.send(0xc0823be000, 0x2194530, 0xc082330240, 0xc0823bc100, 0x0, 0x0)
/usr/local/go/src/net/http/client.go:220 +0x533
net/http.(*Client).send(0xc0823461e0, 0xc0823be000, 0x7d, 0x0, 0x0)
/usr/local/go/src/net/http/client.go:143 +0x161
net/http.(*Client).doFollowingRedirects(0xc0823461e0, 0xc0823be000, 0x167eb68, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/client.go:380 +0xbc7
net/http.(*Client).Do(0xc0823461e0, 0xc0823be000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/client.go:178 +0x18f
github.com/docker/engine-api/client/transport/cancellable.Do.func1(0x21d5e60, 0xc08233ee40, 0xc0823be000, 0xc0823a83c0)
/go/src/github.com/docker/docker/vendor/src/github.com/docker/engine-api/client/transport/cancellable/cancellable.go:49 +0x3c
created by github.com/docker/engine-api/client/transport/cancellable.Do
/go/src/github.com/docker/docker/vendor/src/github.com/docker/engine-api/client/transport/cancellable/cancellable.go:52 +0x106
goroutine 37 [runnable]:
syscall.ReadFile(0x1f0, 0xc0823ac000, 0x1000, 0x1000, 0xc0823b5be4, 0xc0823ca000, 0x0, 0x0)
/usr/local/go/src/syscall/zsyscall_windows.go:286 +0x122
github.com/Microsoft/go-winio.(*win32File).Read(0xc0821a98b0, 0xc0823ac000, 0x1000, 0x1000, 0x2800000000, 0x0, 0x0)
/go/src/github.com/docker/docker/vendor/src/github.com/Microsoft/go-winio/file.go:187 +0xf2
github.com/Microsoft/go-winio.(*win32MessageBytePipe).Read(0xc0822a8d40, 0xc0823ac000, 0x1000, 0x1000, 0x1421960, 0x0, 0x0)
/go/src/github.com/docker/docker/vendor/src/github.com/Microsoft/go-winio/pipe.go:114 +0x94
bufio.(*Reader).fill(0xc0821ad380)
/usr/local/go/src/bufio/bufio.go:97 +0x1f0
bufio.(*Reader).WriteTo(0xc0821ad380, 0x21942c0, 0xc08202a010, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:471 +0x250
io.copyBuffer(0x21942c0, 0xc08202a010, 0x2199608, 0xc0821ad380, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/io/io.go:371 +0xd7
io.Copy(0x21942c0, 0xc08202a010, 0x2199608, 0xc0821ad380, 0x0, 0x0, 0x0)
/usr/local/go/src/io/io.go:351 +0x6b
github.com/docker/docker/api/client.(*DockerCli).holdHijackedConnection.func1(0xc0823a8501, 0x21942c0, 0xc08202a010, 0xc082394250, 0xc082398240, 0x21942c0,
0xc08202a010, 0xc0823a8540)
/go/src/github.com/docker/docker/api/client/hijack.go:18 +0x8e
created by github.com/docker/docker/api/client.(*DockerCli).holdHijackedConnection
/go/src/github.com/docker/docker/api/client/hijack.go:24 +0x524

Information

Windows 10 Pro 1511 Build 10586.164 - German

PS C:\Users\carst> docker info
Containers: 3
Running: 3
Paused: 0
Stopped: 0
Images: 4
Server Version: 1.11.0-rc3
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 21
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 4.4.6
Operating System: Alpine Linux v3.3
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.953 GiB
Name: docker
ID: ******************************
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Registry: https://index.docker.io/v1/

PS C:\Users\carst> docker version
Client:
Version: 1.11.0-rc3
API version: 1.23
Go version: go1.5.3
Git commit: eabf97a
Built: Fri Apr 1 23:33:49 2016
OS/Arch: windows/amd64

Server:
Version: 1.11.0-rc3
API version: 1.23
Go version: go1.5.3
Git commit: eabf97a
Built: Fri Apr 1 23:33:49 2016
OS/Arch: linux/amd64

Steps to reproduce the behavior

  1. install docker.msi
  2. open PowerShell ISE
  3. docker info, docker version, docker run hello-world => okay
  4. docker run -it ubuntu => bang

@cons0l3 thanks for the report.

This is not a problem with Docker for Windows, but with Docker in general. I reproduced the problem with an old docker-machine install.

I think there’s already a tracking issue for this here: https://github.com/docker/docker/issues/21368

Can you update on that and elaborate there?