Dockerd not starting because of port conflict for cri plugin or streaming server - no information on how to change or why cri is running at all

New information: this is something to do with the upgrade to 18.06; when I downgrade to 18.03 it works fine. Anyone know what’s up?

I have a situation where dockerd stopped unexpectedly after a yum upgrade and now will not start. dockerd was running fine for acouple of months until a few hours ago. This is running on a Centos 7 virtual machine. Docker community edition was installed using ```yum install docker-ce" as per the instructions on the docker site. I have a second VM in the same cloud and that was installed the same way with docker version 18.03.1-ce that starts fine and doesn’t appear to be trying to load cri/cni or whatever it is that is causing this problem. I have searched for hours and have not found any meaningful information how how to change the port binding or turn off cri/cni. I have no idea why this particular install is trying to load this

Can anyone suggest how I might get dockerd running again on this virtual machine? How to change the CRI configuration. Why CRI is running at all? Why should kubernetes be suddenly involved when it hasn’t been installed?


I can see the client version:

Version: 18.06.0-ce
API version: 1.38
Go version: go1.10.3
Git commit: 0ffa825
Built: Wed Jul 18 19:08:18 2018
OS/Arch: linux/amd64
Experimental: false

This is the relevant part of the output when I try dockerd:

INFO[0000] Start cri plugin with config {PluginConfig:{ContainerdConfig:{Snapshotter:overlayfs DefaultRuntime:{Type:io.containerd.runtime.v1.linux Engine: Root:} UntrustedWorkloadRuntime:{Type: Engine: Root:}} CniConfig:{NetworkPluginBinDir:/opt/cni/bin NetworkPluginConfDir:/etc/cni/net.d NetworkPluginConfTemplate:} Registry:{Mirrors:map[{Endpoints:[]}]} StreamServerAddress: StreamServerPort:10010 EnableSelinux:false StatsCollectPeriod:10 SystemdCgroup:false EnableTLSStreaming:false} ContainerdRootDir:/var/lib/docker/containerd/daemon ContainerdEndpoint:/var/run/docker/containerd/docker-containerd.sock RootDir:/var/lib/docker/containerd/daemon/io.containerd.grpc.v1.cri StateDir:/var/run/docker/containerd/daemon/io.containerd.grpc.v1.cri}
INFO[0000] Connect containerd service
INFO[0000] Get image filesystem path “/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs”
ERRO[0000] Failed to load cni during init, please check CRI plugin status before setting up network for pods error=“cni config load failed: no network config found in /etc/cni/net.d: cni plugin not initialized: failed to load cni config”
INFO[0000] loading plugin “io.containerd.grpc.v1.introspection”… type=io.containerd.grpc.v1
INFO[0000] serving… address=“/var/run/docker/containerd/docker-containerd-debug.sock”
INFO[0000] serving… address=“/var/run/docker/containerd/docker-containerd.sock”
INFO[0000] containerd successfully booted in 0.030992s
INFO[2018-07-19T14:36:45.718096534Z] pickfirstBalancer: HandleSubConnStateChange: 0xc4203cb5a0, READY module=grpc
INFO[0000] Start subscribing containerd event
INFO[0000] Start recovering state
INFO[0000] Start event monitor
INFO[0000] Start snapshots syncer
INFO[0000] Start streaming server
ERRO[0000] Failed to start streaming server error=“listen tcp bind: address already in use”
INFO[0000] Stop CRI service

It turns out, of course, that my server had something listening on port 10010 and I was able to start that service on a new port.

None-the-less, this was seriously inconvenient: The upgrade from 18.03.0-ce to 18.06.0-ce broke my installation by introducing something new. With hours of internet searching I wasn’t able to find the so-called plugin “cri”. Searches tended to land on pages talking about kubernetes. Also, is this really a plugin? It doesn’t show up with a docker plugin ls. Furthermore, I wasn’t able to find documentation on how to configure this plugin, whether it can safely be disabled (and how), what it is for, , and how to change the port number. The relevant variable shows up on the internet only in a golang source file.

On configuring plugins, all the documentation uses the docker plugin command which is useless if the daemon fails to start, say, for a port conflict! It may be the case that files could be used for config in /etc/docker, but nothing seems to talk about how, let alone confirm this guess.

Does anyone have a pointer to the appropriate documentation? What am I missing?

I’m also having same problems, found an issue on github -