You would be better off emailing tech support asking for it than posting here. Although people from the team respond from time to time, writing support will ensure your query will reach the right people.
This is where I stuck at the moment:
(I am trying to run docker inside lxc-containered ubuntu)
➜ ~ dockerd
INFO[0000] libcontainerd: new containerd process, pid: 1121
WARN[0000] containerd: low RLIMIT_NOFILE changing to max current=1024 max=4096
INFO[0001] [graphdriver] using prior storage driver: overlay2
INFO[0001] Graph migration to content-addressability took 0.00 seconds
WARN[0001] Your kernel does not support swap memory limit
WARN[0001] Your kernel does not support kernel memory limit
WARN[0001] Your kernel does not support cgroup cpu shares
WARN[0001] Your kernel does not support cgroup cfs period
WARN[0001] Your kernel does not support cgroup cfs quotas
WARN[0001] Your kernel does not support cgroup rt period
WARN[0001] Your kernel does not support cgroup rt runtime
WARN[0001] Your kernel does not support cgroup blkio weight
WARN[0001] Your kernel does not support cgroup blkio weight_device
WARN[0001] Your kernel does not support cgroup blkio throttle.read_bps_device
WARN[0001] Your kernel does not support cgroup blkio throttle.write_bps_device
WARN[0001] Your kernel does not support cgroup blkio throttle.read_iops_device
WARN[0001] Your kernel does not support cgroup blkio throttle.write_iops_device
WARN[0001] mountpoint for pids not found
INFO[0001] Loading containers: start.
WARN[0001] Running modprobe bridge br_netfilter failed with message: modprobe: ERROR: ../libkmod/libkmod.c:514 lookup_builtin_file() could not open builtin file '/lib/modules/4.4.87-cb5e816fa6b1a6b5342df69755869d71-2/modules.builtin.bin'
modprobe: WARNING: Module bridge not found in directory /lib/modules/4.4.87-cb5e816fa6b1a6b5342df69755869d71-2
modprobe: ERROR: ../libkmod/libkmod.c:514 lookup_builtin_file() could not open builtin file '/lib/modules/4.4.87-cb5e816fa6b1a6b5342df69755869d71-2/modules.builtin.bin'
modprobe: WARNING: Module br_netfilter not found in directory /lib/modules/4.4.87-cb5e816fa6b1a6b5342df69755869d71-2
, error: exit status 1
INFO[0001] Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address
Error starting daemon: Error initializing network controller: Error creating default "bridge" network: Failed to program NAT chain: Failed to inject DOCKER in PREROUTING chain: iptables failed: iptables --wait -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER: iptables: No chain/target/match by that name.
(exit status 1)
LXC and Docker is like škoda auto and volkswagen. Both are cars, just different. Docker is similiar to lxc but is used more for virtualization. you can automate it way better. So no point in running docker inside lxc. It is like having car inside another and going somewhere.
You are not correct if you think that I don’t get the difference between lxc/lxd and docker. If you have an instruction how to run docker on bare TurrisOS, you are welcome to share the knowledge
Okay, sorry for that.
Good luck with LXC. But I thought that module is not in 3.8 Turris but will be only tested for now.
Is it already in turris_stable?
And regarding the topic, docker can start with --iptables=0 and I’ve even could start some docker containers, but network obviously would not be working. I am still looking for a solution to configure the network for docker inside of LXC container.
What is the status of docker on Turris Omnia? Does it work already? I would be also interested in it, and it would be nice to have a repo for it, so that we can install docker via opkg
I manged to get docker running (more or less) on the Turris Omnia.
I used precompiled armhf binaries from the alpine linux distribution. To circumvent the networking problems described above (and a few more) you need to install following dependencies:
Ressource sharing: Since the required cgroups are not enabled in the stock kernel, the docker daemon has no way of limiting the consumption of certain resources for containers. So if you’re running resource hungry containers, they might starve others.
Swarm: There is (as far as I could find) no available IP_VS module and the kernel is compiled without support for it. If I remember correctly, this is required to set up the ingress network used by docker in swarm mode to route incoming packets. If you want your router to join a swarm, you will most probably need to compile it yourself (or ask me, I’ve got a working version for the current kernel but I am too lazy to look for it right now since I think that probably noone will want it)
For other geeks that want to take this further, my makefile that I used to build the package (I assume you can understand the folder structure and copy & paste the corresponding files where they belong): https://gist.github.com/DanielSel/e575e189720022eaffd61c2878a41508
@Turris Omnia Team: Would it be possible to enable (at least) the following kernel options at some point in the future?
CONFIG_MEMCG_SWAP_ENABLED
CONFIG_MEMCG_KMEM
CONFIG_BLK_DEV_THROTTLING
CONFIG_IOSCHED_CFQ
CONFIG_CFQ_GROUP_IOSCHED
CONFIG_CGROUP_PERF
CONFIG_CGROUP_HUGETLB
CONFIG_CGROUP_NET_PRIO
CONFIG_CFS_BANDWIDTH
CONFIG_FAIR_GROUP_SCHED
CONFIG_RT_GROUP_SCHED
Especially the cgroups would make docker more reliable. Thanks!