Can't run ./launcher rebuild app - Docker storage driver is unsupported

Well, with answers like this, who needs docker forums?

And what exactly should I back up? :stuck_out_tongue:

root@board:~# ps ax |grep dockerd
 3477 ?        Ssl    9:33 /usr/bin/dockerd --raw-logs
12881 pts/1    S+     0:00 grep --color=auto dockerd
root@board:~# docker info | grep Storage
 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
Storage Driver: devicemapper

Hi guys i have centos 6 and I have the problem with Storage Driver: devicemapper I made the step by step of copying docker.service and put it in /etc/systemd/system/docker.service and edit the file and it looks like this

ExecStart=/usr/bin/dockerd -s aufs

And I restart docker but when i ran DOCKER INFO i still have devicemapper… Any ideas?

1 Like

What do the dockerd logs say?

accionly my docker service stop, and cannot start it because give me error for the root it was on (/lib/systemd/system) so I have to delete the docker.service file in /lib/ and reboot so my Discourse breathe again, so where i have to put it in Centos to make the change of Storage Driver, can I do it in the same address /etc/systemd/system ???

This is my log file, sorry cannot upload the file because I´m new in the community

-- Logs begin at Fri 2017-03-03 09:45:06 EST, end at Fri 2017-03-03 12:48:44 EST. --
Mar 03 09:45:24 server.domain dockerd[1133]: time="2017-03-03T09:45:24.766764604-05:00" level=info msg="libcontainerd: new containerd process, pid: 2377"
Mar 03 09:45:25 server.domain dockerd[1133]: time="2017-03-03T09:45:25.934808452-05:00" level=warning msg="devmapper: Usage of loopback devices is strongly discoura
Mar 03 09:45:27 server.domain dockerd[1133]: time="2017-03-03T09:45:27.333810141-05:00" level=warning msg="devmapper: Base device already exists and has filesystem
Mar 03 09:45:27 server.domain dockerd[1133]: time="2017-03-03T09:45:27.394134238-05:00" level=info msg="[graphdriver] using prior storage driver \"devicemapper\""
Mar 03 09:45:28 server.domain dockerd[1133]: time="2017-03-03T09:45:28.535256481-05:00" level=info msg="Graph migration to content-addressability took 0.00 seconds"
Mar 03 09:45:28 server.domain dockerd[1133]: time="2017-03-03T09:45:28.548495996-05:00" level=info msg="Loading containers: start."
Mar 03 09:45:28 server.domain dockerd[1133]: ..time="2017-03-03T09:45:28.937331349-05:00" level=info msg="Firewalld running: false"
Mar 03 09:45:29 server.domain dockerd[1133]: time="2017-03-03T09:45:29.362227446-05:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.
Mar 03 09:45:30 server.domain dockerd[1133]: time="2017-03-03T09:45:30.763754370-05:00" level=info msg="Loading containers: done."
Mar 03 09:45:30 server.domain dockerd[1133]: time="2017-03-03T09:45:30.765896392-05:00" level=info msg="Daemon has completed initialization"
Mar 03 09:45:30 server.domain dockerd[1133]: time="2017-03-03T09:45:30.765918749-05:00" level=info msg="Docker daemon" commit=7392c3b graphdriver=devicemapper versi
Mar 03 09:45:30 server.domain dockerd[1133]: time="2017-03-03T09:45:30.776194469-05:00" level=info msg="API listen on /var/run/docker.sock"
Mar 03 12:43:38 server.domain dockerd[1133]: time="2017-03-03T12:43:38.273864124-05:00" level=info msg="Processing signal 'terminated'"
Mar 03 12:43:42 server.domain dockerd[1133]: time="2017-03-03T12:43:42.791919911-05:00" level=warning msg="libcontainerd: container f4dc5cedb998e20f602cd90e1e3b8651
Mar 03 12:43:43 server.domain dockerd[1133]: time="2017-03-03T12:43:43.223240976-05:00" level=info msg="stopping containerd after receiving terminated"
Mar 03 12:43:44 server.domain dockerd[65394]: time="2017-03-03T12:43:44.348818271-05:00" level=info msg="libcontainerd: new containerd process, pid: 65399"
Mar 03 12:43:44 server.domain dockerd[65394]: time="2017-03-03T12:43:44.449401552-05:00" level=warning msg="devmapper: Usage of loopback devices is strongly discour
Mar 03 12:43:44 server.domain dockerd[65394]: time="2017-03-03T12:43:44.503969908-05:00" level=warning msg="devmapper: Base device already exists and has filesystem
Mar 03 12:43:44 server.domain dockerd[65394]: time="2017-03-03T12:43:44.515874692-05:00" level=info msg="[graphdriver] using prior storage driver \"devicemapper\""
Mar 03 12:43:44 server.domain dockerd[65394]: time="2017-03-03T12:43:44.628450801-05:00" level=info msg="Graph migration to content-addressability took 0.00 seconds
Mar 03 12:43:44 server.domain dockerd[65394]: time="2017-03-03T12:43:44.629605217-05:00" level=info msg="Loading containers: start."
Mar 03 12:43:44 server.domain dockerd[65394]: ..time="2017-03-03T12:43:44.670247722-05:00" level=info msg="Firewalld running: false"
Mar 03 12:43:44 server.domain dockerd[65394]: time="2017-03-03T12:43:44.794411534-05:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172
Mar 03 12:43:45 server.domain dockerd[65394]: time="2017-03-03T12:43:45.236606516-05:00" level=info msg="Loading containers: done."
Mar 03 12:43:45 server.domain dockerd[65394]: time="2017-03-03T12:43:45.236741603-05:00" level=info msg="Daemon has completed initialization"
Mar 03 12:43:45 server.domain dockerd[65394]: time="2017-03-03T12:43:45.236785186-05:00" level=info msg="Docker daemon" commit=7392c3b graphdriver=devicemapper vers
Mar 03 12:43:45 server.domain dockerd[65394]: time="2017-03-03T12:43:45.252788553-05:00" level=info msg="API listen on /var/run/docker.sock"
Mar 03 12:46:24 server.domain dockerd[65394]: time="2017-03-03T12:46:24.537753887-05:00" level=info msg="Processing signal 'terminated'"
Mar 03 12:46:28 server.domain dockerd[65394]: time="2017-03-03T12:46:28.552344058-05:00" level=warning msg="libcontainerd: container f4dc5cedb998e20f602cd90e1e3b865
Mar 03 12:46:28 server.domain dockerd[65394]: time="2017-03-03T12:46:28.715644116-05:00" level=info msg="stopping containerd after receiving terminated"
Mar 03 12:46:29 server.domain dockerd[1550]: time="2017-03-03T12:46:29.745842729-05:00" level=info msg="libcontainerd: new containerd process, pid: 1554"
Mar 03 12:46:30 server.domain dockerd[1550]: time="2017-03-03T12:46:30.803271220-05:00" level=warning msg="devmapper: Usage of loopback devices is strongly discoura
Mar 03 12:46:30 server.domain dockerd[1550]: time="2017-03-03T12:46:30.818107889-05:00" level=warning msg="devmapper: Base device already exists and has filesystem
Mar 03 12:46:30 server.domain dockerd[1550]: time="2017-03-03T12:46:30.825749475-05:00" level=info msg="[graphdriver] using prior storage driver \"devicemapper\""
Mar 03 12:46:30 server.domain dockerd[1550]: time="2017-03-03T12:46:30.868718321-05:00" level=info msg="Graph migration to content-addressability took 0.00 seconds"
Mar 03 12:46:30 server.domain dockerd[1550]: time="2017-03-03T12:46:30.869229167-05:00" level=info msg="Loading containers: start."
Mar 03 12:46:30 server.domain dockerd[1550]: ..time="2017-03-03T12:46:30.878571308-05:00" level=info msg="Firewalld running: false"
Mar 03 12:46:30 server.domain dockerd[1550]: time="2017-03-03T12:46:30.966693834-05:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.
Mar 03 12:46:31 server.domain dockerd[1550]: time="2017-03-03T12:46:31.393497238-05:00" level=info msg="Loading containers: done."
Mar 03 12:46:31 server.domain dockerd[1550]: time="2017-03-03T12:46:31.397406618-05:00" level=info msg="Daemon has completed initialization"
Mar 03 12:46:31 server.domain dockerd[1550]: time="2017-03-03T12:46:31.397432248-05:00" level=info msg="Docker daemon" commit=7392c3b graphdriver=devicemapper versi
Mar 03 12:46:31 server.domain dockerd[1550]: time="2017-03-03T12:46:31.424805513-05:00" level=info msg="API listen on /var/run/docker.sock"

Copy and modify docker.service actually is not the recommended way to modify docker service, as if newer package ships the file with other changes you won’t be able to get it.

The recommended way to modify a systemd service is to use the /etc/systemd/systemd/xxx.service.d/yyy.conf approach.

Take modifying docker parameter for example, one should create the file /etc/systemd/system/docker.service.d/docker.conf and put below in:

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --storage-driver=aufs or overlay <plus other options you need>

The directory name under /etc/systemd/system/ must be the service file name plus a .d suffix.

The file name doesn’t matter as long as it ends with .conf.

To modify ExecStart directive you must have a ExecStart= line to disable the line in the original service definition, or else systemd would think you want to run two ExecStart commands, one is the original one, the other is the new one you just defined.

In such way you “contained” your modification of the service to only ```ExecStart`` so if other changes are make in docker.service in newer docker package they won’t be overridden.

4 Likes

To whom made change to docker service file, remember to run systemctl daemon-reload before trying to restart docker service. It tells systemd to pick up the change to the service definition file.

If you copy and edit docker.service file in place instead of the recommended docker.service.d/xxx.conf approach, you may also need to run systemctl disable docker ; systemctl enable docker.

3 Likes

Following your tutorial, I get this error at the restart /etc/init.d/docker restart :

- Unit docker.service has begun starting up.
ar 06 19:59:41 vps276956.ovh.net docker[6348]: docker: the daemon flag '-s' must follow the 'docker daemon' command.
ar 06 19:59:41 vps276956.ovh.net polkitd(authority=local)[675]: Unregistered Authentication Agent for unix-process:6342:2619823837 (s
ar 06 19:59:41 vps276956.ovh.net systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
ar 06 19:59:41 vps276956.ovh.net systemd[1]: Failed to start Docker Application Container Engine.
- Subject: Unit docker.service has failed
- Defined-By: systemd
- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-
- Unit docker.service has failed.
-
- The result is failed.
ar 06 19:59:41 vps276956.ovh.net systemd[1]: Unit docker.service entered failed state.

The config file : /etc/systemd/systemd/docker.service.d/docker.conf

[Service]
ExecStart=
ExecStart=/usr/bin/docker --storage-driver=aufs daemon -H fd://

If I remove the --storage-driver=aufs option, the restart is OK but no AUFS :frowning:

The best solution from Ubuntu 14 or 15 is to reinstall a VPS with Ubuntu 16.10 and quickly reinstall Discourse and load a backup. :tired_face:

Hate this !

1 Like

I would not use 16.10 use the LTS version of Ubuntu. Otherwise you will be forced to upgrade again soon when that is no longer supported. LTS means Long Term Service for a reason.

2 Likes

Hi Kai I do as you said, comment the line ExecStart in the original file that in my case is in /usr/lib/systemd/system and create te file .conf in

/etc/systemd/system/docker.service.d/docker.conf

after doing that I ran systemctl daemon-reload and in that point all seems ok but when I do the restart of the service I have this error

[cevmf@server docker.service.d]$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/docker.service.d
           └─docker.conf
   Active: failed (Result: exit-code) since Mon 2017-03-06 15:05:48 EST; 48s ago
     Docs: https://docs.docker.com
  Process: 65280 ExecStart=/usr/bin/dockerd --storage-driver=aufs (code=exited, status=1/FAILURE)
 Main PID: 65280 (code=exited, status=1/FAILURE)

Mar 06 15:05:47 server.domain dockerd[65280]: time="2017-03-06T15:05:47.714728848-05:00" level=info msg="libcontainerd: new containerd process, pid: 65283"
Mar 06 15:05:48 server.domain dockerd[65280]: Error starting daemon: error initializing graphdriver: driver not supported

Thanks for the help

Read this line in your log:

ar 06 19:59:41 vps276956.ovh.net docker[6348]: docker: the daemon flag '-s' must follow the 'docker daemon' command.

And how you put the options in docker.conf:

ExecStart=/usr/bin/docker --storage-driver=aufs daemon -H fd://

You need to put the line as:

ExecStart=/usr/bin/docker daemon --storage-driver=aufs -H fd://

Notice the swapped order of daemon and --storage-driver flags.

4 Likes

The last line in your log says aufs storage driver is not supported by docker. Are you sure you are on a distro that supports aufs? What’s your distro?

3 Likes

I’ve this error too, I’m using a Debian 8.

I’ve commented the “check 2” code to allow the usage of devicemapper anyway. But I don’t know where this will lead me. :confused:

The forum is back, for now!

It usually ends in drive corruption so keep your backups close…

2 Likes

Sorry for the delay my distro is:

[cevmf@server system]$ sudo docker exec app cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
UBUNTU_CODENAME=xenial

No that is your OS information in the container.

You need to just run cat /etc/os-release and uname -a in your OS shell, not in your container. And send that output.

1 Like

Ok thanks is:

[cevmf@server system]$ cat /etc/os-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.3 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="7.3"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.3 (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.3:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.3
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.3"