* [Buildroot] docker package in buildroot
@ 2024-08-20 9:13 Waldemar Brodkorb
2024-08-20 9:45 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 5+ messages in thread
From: Waldemar Brodkorb @ 2024-08-20 9:13 UTC (permalink / raw)
To: buildroot
Hi,
I would like to test Docker (docker-engine) in Buildroot.
When starting a container I get:
# docker run nginx
docker0: port 1(veth7743781) entered blocking state
docker0: port 1(veth7743781) entered disabled state
veth7743781: entered allmulticast mode
veth7743781: entered promiscuous mode
docker0: port 1(veth7743781) entered disabled state
veth7743781 (unregistering): left allmulticast mode
veth7743781 (unregistering): left promiscuous mode
docker0: port 1(veth7743781) entered disabled state
docker: Error response from daemon: failed to create task for
container: failed to create shim task: OCI runtime create failed:
error opening file `/proc/self/uid_map`: No such file or directory:
unknown.
It is inside Qemu aarch64 system with glibc.
Is anyone using Docker in Buildroot? Is it a known problem?
best regards
Waldemar
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Buildroot] docker package in buildroot
2024-08-20 9:13 [Buildroot] docker package in buildroot Waldemar Brodkorb
@ 2024-08-20 9:45 ` Thomas Petazzoni via buildroot
2024-08-20 10:39 ` Waldemar Brodkorb
0 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-08-20 9:45 UTC (permalink / raw)
To: Waldemar Brodkorb; +Cc: buildroot
Hello,
On Tue, 20 Aug 2024 11:13:25 +0200
Waldemar Brodkorb <wbx@openadk.org> wrote:
> I would like to test Docker (docker-engine) in Buildroot.
>
> When starting a container I get:
> # docker run nginx
> docker0: port 1(veth7743781) entered blocking state
> docker0: port 1(veth7743781) entered disabled state
> veth7743781: entered allmulticast mode
> veth7743781: entered promiscuous mode
> docker0: port 1(veth7743781) entered disabled state
> veth7743781 (unregistering): left allmulticast mode
> veth7743781 (unregistering): left promiscuous mode
> docker0: port 1(veth7743781) entered disabled state
> docker: Error response from daemon: failed to create task for
> container: failed to create shim task: OCI runtime create failed:
> error opening file `/proc/self/uid_map`: No such file or directory:
> unknown.
>
> It is inside Qemu aarch64 system with glibc.
Quick question: did you build your kernel with Buildroot, or
separately? If you built it with Buildroot, did you build it with
Docker already enabled?
Indeed the docker-engine package enables a shitload of kernel options:
define DOCKER_ENGINE_LINUX_CONFIG_FIXUPS
$(call KCONFIG_ENABLE_OPT,CONFIG_POSIX_MQUEUE)
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUPS)
$(call KCONFIG_ENABLE_OPT,CONFIG_MEMCG)
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_SCHED)
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_FREEZER)
$(call KCONFIG_ENABLE_OPT,CONFIG_CPUSETS)
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_DEVICE)
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_CPUACCT)
$(call KCONFIG_ENABLE_OPT,CONFIG_NAMESPACES)
$(call KCONFIG_ENABLE_OPT,CONFIG_UTS_NS)
$(call KCONFIG_ENABLE_OPT,CONFIG_IPC_NS)
$(call KCONFIG_ENABLE_OPT,CONFIG_PID_NS)
$(call KCONFIG_ENABLE_OPT,CONFIG_NET_NS)
$(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER)
$(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_ADVANCED)
$(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE_NETFILTER)
$(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK)
$(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XTABLES)
$(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_ADDRTYPE)
$(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_CONNTRACK)
$(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_IPVS)
$(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_IPTABLES)
$(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_FILTER)
$(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_NAT)
$(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_TARGET_MASQUERADE)
$(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE)
$(call KCONFIG_ENABLE_OPT,CONFIG_NET_CORE)
$(call KCONFIG_ENABLE_OPT,CONFIG_VETH)
$(call KCONFIG_ENABLE_OPT,CONFIG_OVERLAY_FS)
$(call KCONFIG_ENABLE_OPT,CONFIG_KEYS)
$(DOCKER_ENGINE_DRIVER_BTRFS_LINUX_CONFIG_FIXUPS)
$(DOCKER_ENGINE_DRIVER_DM_LINUX_CONFIG_FIXUPS)
endef
Maybe some are missing? :-)
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Buildroot] docker package in buildroot
2024-08-20 9:45 ` Thomas Petazzoni via buildroot
@ 2024-08-20 10:39 ` Waldemar Brodkorb
2024-08-22 14:00 ` Fiona Klute via buildroot
0 siblings, 1 reply; 5+ messages in thread
From: Waldemar Brodkorb @ 2024-08-20 10:39 UTC (permalink / raw)
To: Thomas Petazzoni; +Cc: buildroot
Hi Thomas,
Thomas Petazzoni wrote,
> Hello,
>
> On Tue, 20 Aug 2024 11:13:25 +0200
> Waldemar Brodkorb <wbx@openadk.org> wrote:
>
> > I would like to test Docker (docker-engine) in Buildroot.
> >
> > When starting a container I get:
> > # docker run nginx
> > docker0: port 1(veth7743781) entered blocking state
> > docker0: port 1(veth7743781) entered disabled state
> > veth7743781: entered allmulticast mode
> > veth7743781: entered promiscuous mode
> > docker0: port 1(veth7743781) entered disabled state
> > veth7743781 (unregistering): left allmulticast mode
> > veth7743781 (unregistering): left promiscuous mode
> > docker0: port 1(veth7743781) entered disabled state
> > docker: Error response from daemon: failed to create task for
> > container: failed to create shim task: OCI runtime create failed:
> > error opening file `/proc/self/uid_map`: No such file or directory:
> > unknown.
> >
> > It is inside Qemu aarch64 system with glibc.
>
> Quick question: did you build your kernel with Buildroot, or
> separately? If you built it with Buildroot, did you build it with
> Docker already enabled?
Yes, I built the Kernel with Buildroot. I used the
qemu-system-aarch64 defconfig and enabled docker.
> Indeed the docker-engine package enables a shitload of kernel options:
>
> define DOCKER_ENGINE_LINUX_CONFIG_FIXUPS
> $(call KCONFIG_ENABLE_OPT,CONFIG_POSIX_MQUEUE)
> $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUPS)
> $(call KCONFIG_ENABLE_OPT,CONFIG_MEMCG)
> $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_SCHED)
> $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_FREEZER)
> $(call KCONFIG_ENABLE_OPT,CONFIG_CPUSETS)
> $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_DEVICE)
> $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_CPUACCT)
> $(call KCONFIG_ENABLE_OPT,CONFIG_NAMESPACES)
> $(call KCONFIG_ENABLE_OPT,CONFIG_UTS_NS)
> $(call KCONFIG_ENABLE_OPT,CONFIG_IPC_NS)
> $(call KCONFIG_ENABLE_OPT,CONFIG_PID_NS)
> $(call KCONFIG_ENABLE_OPT,CONFIG_NET_NS)
> $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER)
> $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_ADVANCED)
> $(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE_NETFILTER)
> $(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK)
> $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XTABLES)
> $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_ADDRTYPE)
> $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_CONNTRACK)
> $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_IPVS)
> $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_IPTABLES)
> $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_FILTER)
> $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_NAT)
> $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_TARGET_MASQUERADE)
> $(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE)
> $(call KCONFIG_ENABLE_OPT,CONFIG_NET_CORE)
> $(call KCONFIG_ENABLE_OPT,CONFIG_VETH)
> $(call KCONFIG_ENABLE_OPT,CONFIG_OVERLAY_FS)
> $(call KCONFIG_ENABLE_OPT,CONFIG_KEYS)
> $(DOCKER_ENGINE_DRIVER_BTRFS_LINUX_CONFIG_FIXUPS)
> $(DOCKER_ENGINE_DRIVER_DM_LINUX_CONFIG_FIXUPS)
> endef
>
> Maybe some are missing? :-)
And who knows which one's are missing? :)
best regards
Waldemar
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Buildroot] docker package in buildroot
2024-08-20 10:39 ` Waldemar Brodkorb
@ 2024-08-22 14:00 ` Fiona Klute via buildroot
2024-08-22 15:52 ` Yann E. MORIN
0 siblings, 1 reply; 5+ messages in thread
From: Fiona Klute via buildroot @ 2024-08-22 14:00 UTC (permalink / raw)
To: buildroot
Am 20.08.24 um 12:39 schrieb Waldemar Brodkorb:
> Hi Thomas,
> Thomas Petazzoni wrote,
>
>> Hello,
>>
>> On Tue, 20 Aug 2024 11:13:25 +0200
>> Waldemar Brodkorb <wbx@openadk.org> wrote:
>>
>>> I would like to test Docker (docker-engine) in Buildroot.
>>>
>>> When starting a container I get:
>>> # docker run nginx
>>> docker0: port 1(veth7743781) entered blocking state
>>> docker0: port 1(veth7743781) entered disabled state
>>> veth7743781: entered allmulticast mode
>>> veth7743781: entered promiscuous mode
>>> docker0: port 1(veth7743781) entered disabled state
>>> veth7743781 (unregistering): left allmulticast mode
>>> veth7743781 (unregistering): left promiscuous mode
>>> docker0: port 1(veth7743781) entered disabled state
>>> docker: Error response from daemon: failed to create task for
>>> container: failed to create shim task: OCI runtime create failed:
>>> error opening file `/proc/self/uid_map`: No such file or directory:
>>> unknown.
>>>
>>> It is inside Qemu aarch64 system with glibc.
>>
>> Quick question: did you build your kernel with Buildroot, or
>> separately? If you built it with Buildroot, did you build it with
>> Docker already enabled?
>
> Yes, I built the Kernel with Buildroot. I used the
> qemu-system-aarch64 defconfig and enabled docker.
>
>> Indeed the docker-engine package enables a shitload of kernel options:
>>
>> define DOCKER_ENGINE_LINUX_CONFIG_FIXUPS
>> $(call KCONFIG_ENABLE_OPT,CONFIG_POSIX_MQUEUE)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUPS)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_MEMCG)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_SCHED)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_FREEZER)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_CPUSETS)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_DEVICE)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_CPUACCT)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_NAMESPACES)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_UTS_NS)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_IPC_NS)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_PID_NS)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_NET_NS)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_ADVANCED)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE_NETFILTER)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XTABLES)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_ADDRTYPE)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_CONNTRACK)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_IPVS)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_IPTABLES)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_FILTER)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_NAT)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_TARGET_MASQUERADE)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_NET_CORE)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_VETH)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_OVERLAY_FS)
>> $(call KCONFIG_ENABLE_OPT,CONFIG_KEYS)
>> $(DOCKER_ENGINE_DRIVER_BTRFS_LINUX_CONFIG_FIXUPS)
>> $(DOCKER_ENGINE_DRIVER_DM_LINUX_CONFIG_FIXUPS)
>> endef
>>
>> Maybe some are missing? :-)
>
> And who knows which one's are missing? :)
My guess is CONFIG_USER_NS. With its default config the Docker engine
doesn't use user namespaces, I guess you enabled it in your config?
That'd explain why it works with the default setup but fails for you.
I have Docker running in Buildroot on aarch64, but my kernel config
contains CONFIG_USER_NS already. ;-)
Best regards,
Fiona
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Buildroot] docker package in buildroot
2024-08-22 14:00 ` Fiona Klute via buildroot
@ 2024-08-22 15:52 ` Yann E. MORIN
0 siblings, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2024-08-22 15:52 UTC (permalink / raw)
To: Fiona Klute; +Cc: buildroot
Fiona, All,
On 2024-08-22 16:00 +0200, Fiona Klute via buildroot spake thusly:
> Am 20.08.24 um 12:39 schrieb Waldemar Brodkorb:
> > > On Tue, 20 Aug 2024 11:13:25 +0200
> > > Waldemar Brodkorb <wbx@openadk.org> wrote:
> > > > When starting a container I get:
[--SNIP--]
> > > > docker: Error response from daemon: failed to create task for
> > > > container: failed to create shim task: OCI runtime create failed:
> > > > error opening file `/proc/self/uid_map`: No such file or directory:
> > > > unknown.
[--SNIP--]
> > > Indeed the docker-engine package enables a shitload of kernel options:
> > And who knows which one's are missing? :)
> My guess is CONFIG_USER_NS. With its default config the Docker engine
> doesn't use user namespaces, I guess you enabled it in your config?
> That'd explain why it works with the default setup but fails for you.
Thanks for the feedback, and for confirming USER_NS is needed; Waldenar
already sent a patch enabling USER_NS:
https://lore.kernel.org/buildroot/ZsWTTvL0qv6By7lK@landeda/T/#mc8b308c86882ccd8934dd24f9c6a55028861be39
However, I had some comments on it:
https://lore.kernel.org/buildroot/ZsWTTvL0qv6By7lK@landeda/T/#mc49f4054e2612b4c432c63b12e9112e06ff9b863
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-08-22 15:52 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-20 9:13 [Buildroot] docker package in buildroot Waldemar Brodkorb
2024-08-20 9:45 ` Thomas Petazzoni via buildroot
2024-08-20 10:39 ` Waldemar Brodkorb
2024-08-22 14:00 ` Fiona Klute via buildroot
2024-08-22 15:52 ` Yann E. MORIN
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox