Installing Docker on Manjaro 17.01 with kernel 4.9.22-1
Installing
Just like any other package you can install Docker on Manjaro with the packman package manager. Manjaro is based on Arch and the repositories are the same as Arch but with a delay.
sudo pacman -S docker
Now if it hasn’t happened automatically, you need to add your user to the Docker group if you want to avoid having to be root or use sudo when using Docker.
sudo usermod -aG docker samy
You will have to start a new session for changes to take place.(logout)
Troubleshooting problems
The installation will probably finish without issues but when you try to use Docker by pulling an image or running a container you might get some errors like I did.
In my case I simply tried to get the Nginx container.
docker pull nginx
This produced a very common error: Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?). Using system default: https://index.docker.io/v1/ Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Now look at the logs for Docker.
sudo journalctl -u Docker
In my case the errors I was getting were “no overlay driver” and “no graphing”.
dockerd[32676]: Error starting daemon: error initializing graphdriver: loopback
dockerd[32590]: time="2017-04-16T21:52:20.146728036+02:00" level=error msg="'overlay...”
docker.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start Docker Application Container Engine.
systemd[1]: docker.service: Unit entered failed state.
systemd[1]: docker.service: Failed with result 'exit-code'.
The Solution
You will have to manually define the storage driver and graphic path option that is available to your system.
With Docker there are multiple ways to define startup options but the recommended way is to create a JSON file in /etc/docker/daemon.json with the options defined in there in JSON-format.
{
"graph": "/mnt/docker-data",
"storage-driver": "overlay2"
}
Now start the Docker daemon
sudo systemctl start docker
Please don’t hesitate to ask questions below or to post suggestions and alternatives.