Docker
wiki.alpinelinux.org/wiki/Docker
Installation
The Docker package is in the 'Community' repository. See
Alpine_Linux_package_management how to add a repository.
apk add docker
Connecting to the Docker daemon through its socket requires you to add yourself to the
`docker` group.
addgroup username docker
To start the Docker daemon at boot, see Alpine_Linux_Init_System.
rc-update add docker boot
service docker start
Note: On older versions of Alpine Linux with older versions of docker you'll also need to
disable some kernel security flags in order to build images:
sysctl -w kernel.grsecurity.chroot_deny_chmod=0
sysctl -w kernel.grsecurity.chroot_deny_mknod=0
For more information, have a look at the corresponding Github issue.
This weakening of security is not necessary to do with Alpine 3.4.x and Docker 1.12 as of
August 2016.
Docker Compose
'docker-compose' is in the 'Community' repository starting with Alpine Linux 3.10.
apk add docker-compose
For older releases:
To install docker-compose, first install pip:
apk add py-pip python3-dev libffi-dev openssl-dev gcc libc-dev make
pip3 install docker-compose
Isolate containers with a user namespace
adduser -SDHs /sbin/nologin dockremap
addgroup -S dockremap
echo dockremap:$(cat /etc/passwd|grep dockremap|cut -d: -f3):65536 >> /etc/subuid
echo dockremap:$(cat /etc/passwd|grep dockremap|cut -d: -f4):65536 >> /etc/subgid
1/3
add to /etc/docker/daemon.json
{
"userns-remap": "dockremap"
}
You may also consider these options : '
"experimental": false,
"live-restore": true,
"ipv6": false,
"icc": false,
"no-new-privileges": false
You'll find all possible configurations here[1].
Example: How to install docker from Arch
https://wiki.archlinux.org/index.php/Docker
"WARNING: No {swap,memory} limit support"
You might encounter this message when executing docker info . To correct this
situation, we have to enable the cgroup_enable=memory swapaccount=1
Alpine 3.8
It may not have been the case before, but with Alpine 3.8, you must config cgroups
properly
Warning: This seems not to work with Alpine 3.9 and Docker 18.06. Follow the
instructions for grub or extlinux below instead.
echo "cgroup /sys/fs/cgroup cgroup defaults 0 0" >> /etc/fstab
cat >> /etc/cgconfig.conf <<EOF
mount {
cpuacct = /cgroup/cpuacct;
memory = /cgroup/memory;
devices = /cgroup/devices;
freezer = /cgroup/freezer;
net_cls = /cgroup/net_cls;
blkio = /cgroup/blkio;
cpuset = /cgroup/cpuset;
cpu = /cgroup/cpu;
}
EOF
Grub
If you use Grub, add the cgroup condition into /etc/default/grub , then upgrade your
grub
GRUB_CMDLINE_LINUX_DEFAULT="... e=memory swapaccount=1"
2/3
Extlinux
With Extlinux, you add the cgroup condition, but inside of /etc/update-extlinux.conf
default_kernel_opts="... cgroup_enable=memory swapaccount=1"
then update the config and reboot
update-extlinux
How to use docker
The best documentation on using Docker and creating containers is at the main docker
site. Adding anything to it here would be redundant.
http://docs.docker.com/
If you create an account at docker.com, you can browse through user images and learn
from the syntax in contributed dockerfiles.
Official Docker image files are denoted on the website by a blue ribbon.
3/3