Discourse Docker Installation without Aufs


(dave) #1

I have a Linode box running 14.04 LTS that I wanted to install discourse on using the docker installation setup. It looks like the kernel Linode uses doesn’t support Aufs yet (or at least docker doesn’t think it does), because device mapper is the driver it decided to use.

When I tried to install Discourse, I got the following error:

“Your Docker installation is not using aufs
Device mapper and other experimental drivers are unstable”

Is there a reason you require Aufs? Just for giggles I commented out the line in launcher that was exiting 1 for not having aufs, and the installation proceeded smoothly, and everything seems to work great.

Am I setting myself up for trouble or have things matured with device mapper since this message/check was first added?

Thanks! I’m really excited about the future of Discourse.


Error response from daemon: Cannot start container [hash]: Cannot find child for /app
(Jens) #2

I actually did this today, too.

On my machine (64 bit arch linux), I followed the installation instructions, and was presented with the same error message. I opened the launcher in an editor and commented out that “exit 1” and the rest of the installation went smoothly, and I got the forum running without any further modification, same as you.

Note that this did not work two month ago, so I am not sure how stable this setup is. I guess the team might not wish to support such a setup at this point.


(Reece) #3

Same with me. I setup a new Linode box for the sole purpose of running Discourse. Ubuntu 14.04 LTS. The error when bootstrapping is:

Warning: tried to install linux-image-extra-3.14.4-x86_64-linode40 (for AUFS).

That package isn’t available. Doing a search, i see these - but appear to be for an earlier kernel.

apt-cache search linux-image-extra
linux-image-extra-3.13.0-24-generic - Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
linux-image-extra-virtual - Transitional package.

I commented out the line as well, Discourse is now up, but I certainly don’t want to put this into production if it’s going to cause problems later.


(Jeff Atwood) #4

Any comment on this @sam?

I’ve set up Discourse many times on Ubuntu 14.04 LTS – but on Digital Ocean, not Linode. The only issue I have is the known bug where the Docker container does not start at boot due to Docker bugs. Other than that, everything works fine.

Related:
https://github.com/dotcloud/docker/issues/469
https://forum.linode.com/viewtopic.php?t=10604&p=61556


(jedi) #5

Also ran into this when doing a new install a couple of weeks back. I just recompiled my kernel with some info from this blog post and things are up and running now. Though I’d like to know as well whether aufs is really needed for running the docker instance.


(Ian Carroll) #6

From this blog post:

A key feature of Docker is the ability to create many copies of the same base filesystem almost instantly. Under the hood Docker makes heavy use of AUFS by Junjiro R. Okajima as a copy-on-write storage mechanism. AUFS is an amazing piece of software and at this point it’s safe to say that it has safely copied billions of containers over the last few years, a great many of them in critical production environments. Unfortunately, AUFS is not part of the standard linux kernel and it’s unclear when it will be merged. This has prevented docker from being available on all Linux systems. Docker 0.7 solves this problem by introducing a storage driver API, and shipping with several drivers. Currently 3 drivers are available: AUFS, VFS (which uses simple directories and copy) and DEVICEMAPPER, developed in collaboration with Alex Larsson and the talented team at Red Hat, which uses an advanced variation of LVM snapshots to implement copy-on-write. An experimental BTRFS driver is also being developed, with even more coming soon: ZFS, Gluster, Ceph, etc.

When the docker daemon is started it will automatically select a suitable driver depending on its capabilities. If your system supports AUFS, it will continue to use the AUFS driver and all your containers and images will automatically be available after you upgrade. Otherwise devicemapper will be used as the default driver. Drivers cannot share data on the same machine, but all drivers produce images which are compatible with each other and with all past versions of docker. This means every image on the index (including those produced by Trusted Builds) remains usable across all docker installations.


(Sam Saffron) #7

I had absolutely no luck with device mapper in version 0.9 and below, have not tried it in the last few weeks.

We had some very nasty support issues that were incredibly hard to troubleshoot.

I will disable the check for now, but if support issues keep creeping through and are device mapper related, the check is going back in.


Can't install Discourse with only 10 GB disk, run out of space
(Rahul Dhingra) #8

Hello
I have just installed discours first time on linode ubuntu 14.x it working fine but with every launcher command i get following error:
root@li724-208:/var/docker# ./launcher restart
WARNING: No memory limit support
WARNING: No swap limit support
Your Docker installation is not using aufs, in the past we have had issues with it
If you are unable to bootstrap your image (or stop it) please report the issue a t:

Just wanted to know if its safe to start adding content to my forum or it may cause any trouble later in future

Thanks


(Sam Saffron) #9

I honestly do not know, I have done very little testing on device mapper.


(Jeff Atwood) #10

It may work, it may not work, we have no idea.

We don’t recommend running on the Device Mapper fallback – you should try to switch to a host that fully supports Docker.


(Rahul Dhingra) #11

Thanks for letting me know


(Daniel) #12

Just to point people in the right direction - you can use a custom kernel with Linode.

I’m running Ubuntu 14.04 on a 1GB Linode with the Ubuntu supplied kernel.

/var/docker$ docker info
Containers: 0
Images: 13
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Dirs: 13
Execution Driver: native-0.2
Kernel Version: 3.13.0-32-generic

####A couple of notes:

This was necessary after enabling the Ubuntu supplied kernel:

sudo apt-get install apparmor

This was necessary (I believe the Docker install script does this but I switched kernels after installing Docker):

sudo apt-get install linux-image-extra-`uname -r`
sudo modprobe aufs

Discourse delivering blank web pages on Ubuntu 14 on Linode
(bubill) #13

I try to install docker on debian. but failed.

root:/var/docker# sudo ./launcher bootstrap app
info: Writing node (dir)Top...
info: Done.
Your Docker installation is not using aufs, in the past we have had issues with it
If you are unable to bootstrap your image (or stop it) please report the issue at:
https://meta.discourse.org/t/discourse-docker-installation-without-aufs/15639
./launcher: line 85: --version: command not found
ERROR: Docker version  not supported, please upgrade to at least 1.2.0, or recommended 1.2.0

root:/var/docker# uname -a
Linux root 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux

How to fix it ?
Thanks in Advanced !


(Zane Beckman) #14

This should probably be in its own topic, but I’ll leave that to a moderator to handle.

run this in a root terminal:

curl -sSL https://get.docker.io/ | sudo sh

If that fails, run this, then try again:

apt-get -y install curl

edit: I guess this does belong in this topic. I read your errors bottom up, and judged too quickly. Nonetheless, try these steps because they may tame the dragons.


(bubill) #15

Thanks your relpy !
run this:

curl -ssL https://get.docker.io/ | sh

No message . I wait some time, and try some times.


(Zane Beckman) #16

Try replacing sh with sudo sh on the right side.


(bubill) #17

It works !

curl -ssL https://get.docker.io/ | sudo sh

#18

I’ve done some light research into the idea of using Docker on Linode without AUFS. The obvious choice would be to use OverlayFS instead.

Benefits:


(German Dominguez) #19

Estoy buscando informacion, para instalar docker en 32 bit


(Jeff Atwood) #20

Docker requires a 64-bit OS, it will not work in a 32-bit environment at all.