问题:将 Docker 移植到新平台 (Tizen 4.0 + ARM64)
Issue: Porting Docker to a new platform (Tizen 4.0 + ARM64)
我一直在尝试使用静态二进制文件在新平台(Tizen 4.0 + ARM64)上移植 Docker CE here
然而,即使我满足上述 link 中描述的所有先决条件,我在尝试 运行 docker 守护程序时仍然收到此错误:
WARN[2018-10-04T14:14:57.890120101+09:00] Running modprobe bridge br_netfilter failed with message: modprobe: WARNING: Module bridge not found in directory /lib/modules/4.9.59-g70b545c-dirty modprobe: WARNING: Module br_netfilter not found in directory /lib/modules/4.9.59-g70b545c-dirty, error: exit status 1
WARN[2018-10-04T14:14:57.905153370+09:00] Running modprobe nf_nat failed with message: modprobe: WARNING: Module nf_nat not found in directory /lib/modules/4.9.59-g70b545c-dirty, error: exit status 1
WARN[2018-10-04T14:14:57.920222485+09:00] Running modprobe xt_conntrack failed with message: modprobe: WARNING: Module xt_conntrack not found in directory /lib/modules/4.9.59-g70b545c-dirty, error: exit status 1
Error starting daemon: Error initializing network controller: Error creating default "bridge" network: package not installed
有办法解决这个问题吗?
否则,是否有一些替代方法可以将 docker 移植到新平台(在本例中为:Tizen 4.0 + ARM64)。
重点说明:该平台使用 linux 内核,但不支持许多典型的 Linux 平台功能,例如 apt-get 命令。
任何帮助将不胜感激。提前致谢:)
从你的错误信息来看,你的系统缺少一些与网络相关的内核模块,从外观上看,它至少在寻找:bridge、br_netfilter、nf_nat、xt_conntrack。您需要移植这些缺失的内核模块或重新编译内核以包含相关模块。
Docker 本身需要很多先决条件才能在新平台上 运行。其中一些被提及 here.
除了满足先决条件外,还必须满足特定的内核要求,以防万一内核不满足所有这些要求,必须相应地修补内核才能获得东西 运行宁.
这是内核 defconfigs,必须启用才能获得 docker 运行ning -
CONFIG_CGROUP_DEVICE=y, CONFIG_CPUSETS=y, CONFIG_BLK_CGROUP=y, CONFIG_CGROUPS=y, CONFIG_CGROUP_CPUACCT=y, CONFIG_CGROUP_DEVICE=y, CONFIG_CGROUP_FREEZER=y, CONFIG_CGROUP_SCHED=y, - CONFIG_CGROUP_PERF=y, CONFIG_CGROUP_HUGETLB=y, CONFIG_NET_CLS_CGROUP=y, CONFIG_CGROUP_NET_PRIO=y, CONFIG_CFS_BANDWIDTH=y, CONFIG_CGROUP_PIDS=y, CONFIG_BLK_CGROUP=y, CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y, CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y, CONFIG_NETFILTER_XT_MATCH_IPVS=y, CONFIG_NF_NAT_IPV4 =y, CONFIG_IP_NF_FILTER=y, CONFIG_IP_NF_TARGET_MASQUERADE=y, CONFIG_IP_NF_NAT=y, CONFIG_NF_NAT=y, CONFIG_NF_NAT_NEEDED=y, CONFIG_POSIX_MQUEUE= y, CONFIG_MEMCG=y, CONFIG_MEMCG_SWAP=y, CONFIG_MEMCG_KMEM=y, CONFIG_MEMCG_SWAP_ENABLED=y, CONFIG_BRIDGE=y, CONFIG_BRIDGE _NETFILTER=y,CONFIG_VXLAN=y,CONFIG_CRYPTO=y,CONFIG_CRYPTO_AEAD=y,CONFIG_CRYPTO_GCM=y,CONFIG_CRYPTO_SEQIV=y,CONFIG_CRYPTO_GHASH=y, CONFIG_XFRM=y, CONFIG_XFRM_USER=y, CONFIG_XFRM_ALGO=y, CONFIG_INET_ESP=y, CONFIG_INET_XFRM_MODE_TRANSPORT=y, CONFIG_IPVLAN=y, CONFIG_MACVLAN=y, CONFIG_DUMMY=y, ": CONFIG_NF_NAT_FTP=y, CONFIG_NF_CONNTRACK_FTP=y, CONFIG_NF_NAT_TFTP=y, CONFIG_NF_CONNTRACK_TFTP=y, CONFIG_OVERLAY_FS=y, CONG_AUFS_FS=y, CONFIG_BTRFS_FS=y, CONFIG_BTRFS_FS_POSIX_ACL=y, CONFIG_BLK_DEV_DM=y, CONFIG_DM_THIN_PROVISIONING=y, CONFIG_NAMESPACES=y, CONFIG_NET_NS=y, CONFIG_PID_NS=y, CONFIG_IPC_NS=y, CONFIG_UTS_NS=y, CONFIG_KEYS=y, CONFIG_VETH=y, CONFIG_USER_NS=y, CONFIG_SECCOMP=y, CONFIG_BLK_DEV_THROTTLING=y, CONFIG_IOSCHED_CFQ=y, CONFIG_CFQ_GROUP_IOSCHED =y, CONFIG_FAIR_GROUP_SCHED=y, CONFIG_RT_GROUP_SCHED=y, CONFIG_IP_VS=y, CONFIG_IP_VS_NFCT=y, CONFIG_IP_VS_RR=y, CONFIG_EXT4_FS =y,CONFIG_EXT4_FS_POSIX_ACL=y,CONFIG_EXT4_FS_SECURITY=y
P.S。 - 上述某些 defconfigs 可能不是获得 docker 运行ning 所必需的。但是,启用所有这些功能可确保您扩展了对 docker 提供的所有功能的支持。
我一直在尝试使用静态二进制文件在新平台(Tizen 4.0 + ARM64)上移植 Docker CE here
然而,即使我满足上述 link 中描述的所有先决条件,我在尝试 运行 docker 守护程序时仍然收到此错误:
WARN[2018-10-04T14:14:57.890120101+09:00] Running modprobe bridge br_netfilter failed with message: modprobe: WARNING: Module bridge not found in directory /lib/modules/4.9.59-g70b545c-dirty modprobe: WARNING: Module br_netfilter not found in directory /lib/modules/4.9.59-g70b545c-dirty, error: exit status 1
WARN[2018-10-04T14:14:57.905153370+09:00] Running modprobe nf_nat failed with message: modprobe: WARNING: Module nf_nat not found in directory /lib/modules/4.9.59-g70b545c-dirty, error: exit status 1
WARN[2018-10-04T14:14:57.920222485+09:00] Running modprobe xt_conntrack failed with message: modprobe: WARNING: Module xt_conntrack not found in directory /lib/modules/4.9.59-g70b545c-dirty, error: exit status 1
Error starting daemon: Error initializing network controller: Error creating default "bridge" network: package not installed
有办法解决这个问题吗?
否则,是否有一些替代方法可以将 docker 移植到新平台(在本例中为:Tizen 4.0 + ARM64)。
重点说明:该平台使用 linux 内核,但不支持许多典型的 Linux 平台功能,例如 apt-get 命令。
任何帮助将不胜感激。提前致谢:)
从你的错误信息来看,你的系统缺少一些与网络相关的内核模块,从外观上看,它至少在寻找:bridge、br_netfilter、nf_nat、xt_conntrack。您需要移植这些缺失的内核模块或重新编译内核以包含相关模块。
Docker 本身需要很多先决条件才能在新平台上 运行。其中一些被提及 here.
除了满足先决条件外,还必须满足特定的内核要求,以防万一内核不满足所有这些要求,必须相应地修补内核才能获得东西 运行宁.
这是内核 defconfigs,必须启用才能获得 docker 运行ning -
CONFIG_CGROUP_DEVICE=y, CONFIG_CPUSETS=y, CONFIG_BLK_CGROUP=y, CONFIG_CGROUPS=y, CONFIG_CGROUP_CPUACCT=y, CONFIG_CGROUP_DEVICE=y, CONFIG_CGROUP_FREEZER=y, CONFIG_CGROUP_SCHED=y, - CONFIG_CGROUP_PERF=y, CONFIG_CGROUP_HUGETLB=y, CONFIG_NET_CLS_CGROUP=y, CONFIG_CGROUP_NET_PRIO=y, CONFIG_CFS_BANDWIDTH=y, CONFIG_CGROUP_PIDS=y, CONFIG_BLK_CGROUP=y, CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y, CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y, CONFIG_NETFILTER_XT_MATCH_IPVS=y, CONFIG_NF_NAT_IPV4 =y, CONFIG_IP_NF_FILTER=y, CONFIG_IP_NF_TARGET_MASQUERADE=y, CONFIG_IP_NF_NAT=y, CONFIG_NF_NAT=y, CONFIG_NF_NAT_NEEDED=y, CONFIG_POSIX_MQUEUE= y, CONFIG_MEMCG=y, CONFIG_MEMCG_SWAP=y, CONFIG_MEMCG_KMEM=y, CONFIG_MEMCG_SWAP_ENABLED=y, CONFIG_BRIDGE=y, CONFIG_BRIDGE _NETFILTER=y,CONFIG_VXLAN=y,CONFIG_CRYPTO=y,CONFIG_CRYPTO_AEAD=y,CONFIG_CRYPTO_GCM=y,CONFIG_CRYPTO_SEQIV=y,CONFIG_CRYPTO_GHASH=y, CONFIG_XFRM=y, CONFIG_XFRM_USER=y, CONFIG_XFRM_ALGO=y, CONFIG_INET_ESP=y, CONFIG_INET_XFRM_MODE_TRANSPORT=y, CONFIG_IPVLAN=y, CONFIG_MACVLAN=y, CONFIG_DUMMY=y, ": CONFIG_NF_NAT_FTP=y, CONFIG_NF_CONNTRACK_FTP=y, CONFIG_NF_NAT_TFTP=y, CONFIG_NF_CONNTRACK_TFTP=y, CONFIG_OVERLAY_FS=y, CONG_AUFS_FS=y, CONFIG_BTRFS_FS=y, CONFIG_BTRFS_FS_POSIX_ACL=y, CONFIG_BLK_DEV_DM=y, CONFIG_DM_THIN_PROVISIONING=y, CONFIG_NAMESPACES=y, CONFIG_NET_NS=y, CONFIG_PID_NS=y, CONFIG_IPC_NS=y, CONFIG_UTS_NS=y, CONFIG_KEYS=y, CONFIG_VETH=y, CONFIG_USER_NS=y, CONFIG_SECCOMP=y, CONFIG_BLK_DEV_THROTTLING=y, CONFIG_IOSCHED_CFQ=y, CONFIG_CFQ_GROUP_IOSCHED =y, CONFIG_FAIR_GROUP_SCHED=y, CONFIG_RT_GROUP_SCHED=y, CONFIG_IP_VS=y, CONFIG_IP_VS_NFCT=y, CONFIG_IP_VS_RR=y, CONFIG_EXT4_FS =y,CONFIG_EXT4_FS_POSIX_ACL=y,CONFIG_EXT4_FS_SECURITY=y
P.S。 - 上述某些 defconfigs 可能不是获得 docker 运行ning 所必需的。但是,启用所有这些功能可确保您扩展了对 docker 提供的所有功能的支持。