[OpenWrt-Devel] running docker on openwrt?

Torbjorn Jansson torbjorn.jansson at mbox200.swipnet.se
Sun Sep 30 10:52:04 EDT 2018


On 2018-09-30 16:21, Daniel Golle wrote:
> On Sun, Sep 30, 2018 at 02:18:54PM +0200, Torbjorn Jansson wrote:
>> On 2018-09-30 13:59, Daniel Golle wrote:
>>> On Sun, Sep 30, 2018 at 12:21:12PM +0200, Torbjorn Jansson wrote:
>>>> Hello.
>>>>
>>>> a question, is it possible to run docker on openwrt?
>>>> reason for asking is that i got a raspberrypi running openwrt and it got
>>>> plenty of storage space and is mostly sitting idle so if i can run docker on
>>>> it i might be able to consolidate some of the other pis i have for various
>>>> purposes.
>>>>
>>>> i know you can do it the other way around, running openwrt in a docker
>>>> instance on a regular computer but can you get docker itself to run under
>>>> openwrt?
>>>>
>>>> ideas, suggestions?
>>>
>>> Just use LXC, that works well on OpenWrt, I'm using that to run various
>>> containers running Debian and OpenWrt on top of OpenWrt.
>>> (but you need to compile it yourself because many of the kernel options
>>> needed for containers aren't enabled by default)
>>>
>>> Docker didn't attract a lot of interest because it is x86_64 and
>>> ARM-only, so 80% of OpenWrt-supported devices aren't supported by
>>> Docker which doesn't provide images for MIPS-like CPUs.
>>>
>>> However, now that Golang has been added to the packages feed we could
>>> package Docker at least for the platforms supported by it...
>>>
>>
>> ok, i see.
>> i've never tried lxc and i think docker also needs some extra kernel config
>> options for it to work.
>>
>> i ran the script from:
>> https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh
>> on one of my boxes and it complained about:
>> - CONFIG_NAMESPACES: missing
>> - CONFIG_NET_NS: missing
>> - CONFIG_PID_NS: missing
>> - CONFIG_IPC_NS: missing
>> - CONFIG_UTS_NS: missing
>> - CONFIG_CGROUPS: missing
>> - CONFIG_CGROUP_CPUACCT: missing
>> - CONFIG_CGROUP_DEVICE: missing
>> - CONFIG_CGROUP_FREEZER: missing
>> - CONFIG_CGROUP_SCHED: missing
>> - CONFIG_CPUSETS: missing
>> - CONFIG_MEMCG: missing
>> - CONFIG_NETFILTER_XT_MATCH_IPVS: missing
>> - CONFIG_POSIX_MQUEUE: missing
>>
>> and then there were a bunch of optional features also missing.
> 
> For now the binary distribution doesn't have all those kernel features
> enabled. You need to compile from source and make sure that
> CONFIG_LXC_KERNEL_OPTIONS is set, this selects all the kernel options
> needed to run containers.
> 

i see, so a package can modify the kernel options and enable needed features.
that's quite handy, i didn't know that.

what i tried to do was to run:
make kernel_menuconfig CONFIG_TARGET=subtarget
and then pick the right options myself and then check it with:
git diff target/linux/

the diff looked good but the resulting image did not include my extra kernel 
config options for some reason and in don't understand why.
i assumed the stuff in target/linux/brcm2708/bcm2710/config-4.9 was going to be 
used as a default template or something but maybe other config options is 
overriding it.

i'm no expert on the build system (yet?) so any pointers for manually adding a 
few extra config options for testing purposes would be nice.


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list