# Device 'docker0' missing after system upgrade?

**URL:** https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625
**Category:** Self-hosting
**Created:** [December 22, 2016, 12:19am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625 "2016-12-22T00:19:30Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![Silvanus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/silvanus/32/62831_2.png) [@Silvanus](https://meta.discourse.org/u/Silvanus)
#### Post date: [December 22, 2016, 12:19am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/1 "2016-12-22T00:19:30Z")

</div>

I did a system upgrade from 14.04 to 16.04 and it seems that after that my system is broken. Trying to start discourse with `sudo ./launcher start app` gives the following:

> Device “docker0” does not exist.  
> Cannot connect to the docker daemon - verify it is running and you have access

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [December 22, 2016, 12:21am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/2 "2016-12-22T00:21:36Z")

</div>

Reinstall Docker using `apt-get`

---

<div class="post-metadata">

### Author: ![Silvanus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/silvanus/32/62831_2.png) [@Silvanus](https://meta.discourse.org/u/Silvanus)
#### Post date: [December 22, 2016, 12:25am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/3 "2016-12-22T00:25:17Z")

</div>

```
root@DOMAIN:/var/discourse# sudo apt-get install docker
Reading package lists... Done
Building dependency tree       
Reading state information... Done
docker is already the newest version (1.5-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

```

---

<div class="post-metadata">

### Author: ![Silvanus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/silvanus/32/62831_2.png) [@Silvanus](https://meta.discourse.org/u/Silvanus)
#### Post date: [December 22, 2016, 12:28am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/4 "2016-12-22T00:28:58Z")

</div>

Is this a problem with Upstard vs. systemd?

> <https://askubuntu.com/questions/614970/vivid-failed-to-connect-to-upstart-connection-refused>

With `start docker` I’m getting simply:

> start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused

* * *

How the \*\*\*\* did I manage to get my system this broken… Ngh.

---

<div class="post-metadata">

### Author: ![Silvanus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/silvanus/32/62831_2.png) [@Silvanus](https://meta.discourse.org/u/Silvanus)
#### Post date: [December 22, 2016, 12:35am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/5 "2016-12-22T00:35:13Z")

</div>

Did apt-get remove, apt-get install for docker and docker-engine. Getting some weird message about `error initializing graphdriver: driver not supported`.

Should I just `rm -rf /var/lib/docker`?

---

<div class="post-metadata">

### Author: ![mpalmer](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mpalmer/32/45740_2.png) [@mpalmer](https://meta.discourse.org/u/mpalmer)
#### Post date: [December 22, 2016, 12:41am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/6 "2016-12-22T00:41:21Z")

</div>

> [@Silvanus](#):
>
> docker is already the newest version (1.5-1)

That is a wicked out-of-date version of Docker. We recommend always keeping Docker up-to-date, and they’re up to 1.12.5 now.

> [@Silvanus](#):
>
> error initializing graphdriver: driver not supported

Yeeeeeah… newer versions of Docker suck about maintaining compatibility. You were probably using `aufs` before, so try adding `-s aufs` to your `DOCKER_OPTS` (in `/etc/default/docker`), or wherever they’ve moved that to in the Brave New World of systemd. Making sure you’ve installed the `extras` kernel package for the `aufs.ko` kernel module will help, too.

Alternately, yeah, you could nuke `/var/lib/docker` (with `docker-engine` uninstalled) and then install `docker-engine` again, that’d work. You’ll need to do a full rebuild afterwards to get Discourse going again, but as long as you don’t touch `/var/discourse`, your database, etc should remain intact.

---

<div class="post-metadata">

### Author: ![Silvanus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/silvanus/32/62831_2.png) [@Silvanus](https://meta.discourse.org/u/Silvanus)
#### Post date: [December 22, 2016, 12:45am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/7 "2016-12-22T00:45:05Z")

</div>

> [@mpalmer](#):
>
> That is a wicked out-of-date version of Docker. We recommend always keeping Docker up-to-date, and they’re up to 1.12.5 now.

Thanks a lot for the help! So how do I get a newer docker if the apt-get doesn’t give it to me?

Edit: Found it. Just a sec.

Edit2: Updated docker. Nuked /var/lib/docker. New error in `service docker status`:

```
level=error msg="[graphdriver] prior storage driver \"devicemapper\" failed: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed"
level=fatal msg="Error starting daemon: error initializin graphdriver: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed"

```

Ngh.

---

<div class="post-metadata">

### Author: ![mpalmer](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mpalmer/32/45740_2.png) [@mpalmer](https://meta.discourse.org/u/mpalmer)
#### Post date: [December 22, 2016, 1:02am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/8 "2016-12-22T01:02:27Z")

</div>

Oh man, devicemapper… why is it trying to use that as default? Definitely time to add `-s aufs` to the docker daemon options.

---

<div class="post-metadata">

### Author: ![Silvanus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/silvanus/32/62831_2.png) [@Silvanus](https://meta.discourse.org/u/Silvanus)
#### Post date: [December 22, 2016, 1:12am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/9 "2016-12-22T01:12:40Z")

</div>

I’m quite lost. How do I do that?

Am I supposed to create a file into `/etc/systemd/system/docker.service.d/docker.conf` that has the line:

```
ExecStart=/usr/bin/dockerd -H fd:// -s aufs

```

Or how?

---

<div class="post-metadata">

### Author: ![mpalmer](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mpalmer/32/45740_2.png) [@mpalmer](https://meta.discourse.org/u/mpalmer)
#### Post date: [December 22, 2016, 1:15am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/10 "2016-12-22T01:15:36Z")

</div>

Well, I edit `/etc/default/docker` and add it to the `DOCKER_OPTS` line, but I don’t know if systemd respects that file, or if there’s some other magical way of making it happen in systemd fairyland. I’d be surprised if a quick Google search couldn’t help you out, though.

---

<div class="post-metadata">

### Author: ![Silvanus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/silvanus/32/62831_2.png) [@Silvanus](https://meta.discourse.org/u/Silvanus)
#### Post date: [December 22, 2016, 1:20am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/11 "2016-12-22T01:20:48Z")

</div>

Found this:

> For a given service foo, the package would provide /lib/systemd/system/foo.service. You can check its status using systemctl status foo, or view its logs using journalctl -u foo. To override something in the definition of foo, do:

> `sudo systemctl edit foo`

> This creates a directory in /etc/systemd/system named after the unit, and an override.conf file in that directory (/etc/systemd/system/foo.service.d/override.conf). You can add or override settings using this file (or other .conf files in /etc/systemd/system/foo.service.d/).

Did this, but I can’t find any DOCKER\_OPTS line here…

**cat /lib/systemd/system/docker.service**

```
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket
Requires=docker.socket

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd://
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process

[Install]
WantedBy=multi-user.target

```

This is then replaced by the file in /etc/… but I have no idea how to add DOCKER\_OPTS…

* * *

So, I added

```
Service]
ExecStart=
ExecStart=/usr/bin/dockerd -s aufs

```

but this didn’t fix it. Now the error message is:

```
level=fatal msg="Error starting daemon: error initializing graphdriver: driver not supported"

```

---

<div class="post-metadata">

### Author: ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)
#### Post date: [December 22, 2016, 1:27am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/12 "2016-12-22T01:27:50Z")

</div>

~~Add an `EnvironmentFile=/etc/default/docker` directive in the Service section and put the line in that file.~~

Sounds like the aufs driver isn’t installed, do you have linux-image-extra-(version) installed?

---

<div class="post-metadata">

### Author: ![Silvanus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/silvanus/32/62831_2.png) [@Silvanus](https://meta.discourse.org/u/Silvanus)
#### Post date: [December 22, 2016, 1:31am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/13 "2016-12-22T01:31:18Z")

</div>

> [@riking](#):
>
> Sounds like the aufs driver isn’t installed, do you have linux-image-extra-(version) installed?

You mean this:

> install linux-image-extra-$(uname -r)

This results in:  
E: Unable to locate package linux-image-extra-3.13.0-24-generic

From somewhere I read that since 15.04 or something like that the extra is no longer needed, or something like that…

---

<div class="post-metadata">

### Author: ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)
#### Post date: [December 22, 2016, 1:32am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/14 "2016-12-22T01:32:48Z")

</div>

Uhhh how long have you been holding back kernel upgrades?

```plaintext
$ uname -r
4.4.0-53-generic

```

---

<div class="post-metadata">

### Author: ![Silvanus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/silvanus/32/62831_2.png) [@Silvanus](https://meta.discourse.org/u/Silvanus)
#### Post date: [December 22, 2016, 1:35am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/15 "2016-12-22T01:35:08Z")

</div>

Well, I’m running a DigitalOcean droplet and I just did a dist-upgrade…

I’m at lost here. I was supposed to get to sleep 4 hrs ago and by trying to do a “quick update” to the forum I’ve managed to get 4 hrs of downtime and I’m really, really tired.

I’ll just leave the forum down and try to fix this tomorrow… ☹

---

<div class="post-metadata">

### Author: ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)
#### Post date: [December 22, 2016, 1:35am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/16 "2016-12-22T01:35:51Z")

</div>

At this point, it may be best to take a backup and just restore it on a brand new droplet.

---

<div class="post-metadata">

### Author: ![Silvanus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/silvanus/32/62831_2.png) [@Silvanus](https://meta.discourse.org/u/Silvanus)
#### Post date: [December 22, 2016, 1:37am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/17 "2016-12-22T01:37:12Z")

</div>

Well, how do I get a backup from discourse, since I can’t run it?

---

<div class="post-metadata">

### Author: ![mpalmer](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mpalmer/32/45740_2.png) [@mpalmer](https://meta.discourse.org/u/mpalmer)
#### Post date: [December 22, 2016, 2:00am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/18 "2016-12-22T02:00:14Z")

</div>

Some older DigitalOcean droplets don’t do kernels the normal way. You need to [play silly-buggers](https://www.digitalocean.com/community/tutorials/how-to-update-a-digitalocean-server-s-kernel) to upgrade your kernel. Get yourself running the correct kernel, install the extras kernel package, and _then_ see where that gets you.

---

<div class="post-metadata">

### Author: ![Silvanus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/silvanus/32/62831_2.png) [@Silvanus](https://meta.discourse.org/u/Silvanus)
#### Post date: [December 22, 2016, 2:01am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/19 "2016-12-22T02:01:30Z")

</div>

Thank you. Will have a look after waking up. Good night!

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [December 22, 2016, 2:12am UTC](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625/20 "2016-12-22T02:12:18Z")

</div>

> [@Silvanus](#):
>
> I’m running a DigitalOcean droplet and I just did a dist-upgrade…

This usually isn’t the best idea, lowering DNS TTL, getting a new server and moving stuff is way easier.

[Next page](https://meta.discourse.org/t/device-docker0-missing-after-system-upgrade/54625.md?page=2)
