泰山派安装docker失败

项目场景:

泰山派4.19内核安装docker

SDK版本:tspi_linux_sdk_repo_20240131
编译好的debian镜像:百度网盘

问题描述

泰山派安装docker不支持oerlay2,无法创建docker0网桥。
docker官方文档:https://docs.docker.com/engine/install/debian/
先决条件里没有debian10。

linaro@linaro-alip:~$ sudo systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Thu 2024-05-23 19:41:21 CST; 18s ago
     Docs: https://docs.docker.com
  Process: 9558 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
 Main PID: 9558 (code=exited, status=1/FAILURE)

523 19:41:21 linaro-alip systemd[1]: docker.service: Start request repeated too quickly.
523 19:41:21 linaro-alip systemd[1]: docker.service: Failed with result 'exit-code'.
523 19:41:21 linaro-alip systemd[1]: Failed to start Docker Application Container Engine.

linaro@linaro-alip:~$ sudo journalctl -u docker
-- Logs begin at Thu 2019-02-14 18:11:58 CST, end at Thu 2024-05-23 19:59:48 CST. --
523 19:41:04 linaro-alip dockerd[9070]: time="2024-05-23T19:41:04.789436330+08:00" level=info msg="Starting up"
523 19:41:04 linaro-alip dockerd[9070]: time="2024-05-23T19:41:04.896607802+08:00" level=error msg="failed to mount overlay: no such device" storage-driver=overlay2
523 19:41:04 linaro-alip dockerd[9070]: time="2024-05-23T19:41:04.897151169+08:00" level=error msg="exec: \"fuse-overlayfs\": executable file not found in $PATH" storage-driver=fuse-overlayfs
523 19:41:04 linaro-alip dockerd[9070]: time="2024-05-23T19:41:04.908768387+08:00" level=info msg="Loading containers: start."
523 19:41:04 linaro-alip dockerd[9070]: time="2024-05-23T19:41:04.926798686+08:00" level=warning msg="Running modprobe bridge br_netfilter failed with message: modprobe: ERROR: ../libkmod/libkmod.c:586 k
5月 23 19:41:04 linaro-alip dockerd[9070]: time="2024-05-23T19:41:04.957598562+08:00" level=info msg="unable to detect if iptables supports xlock: 'iptables --wait -L -n': `iptables/1.8.2 Failed to initiali
523 19:41:05 linaro-alip dockerd[9070]: time="2024-05-23T19:41:05.188596944+08:00" level=info msg="stopping event stream following graceful shutdown" error="<nil>" module=libcontainerd namespace=moby
523 19:41:05 linaro-alip dockerd[9070]: failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to register "bridge" driver: failed to create NAT chain
523 19:41:05 linaro-alip dockerd[9070]:  (exit status 1)
523 19:41:05 linaro-alip systemd[1]: docker.service: Failed with result 'exit-code'.
523 19:41:05 linaro-alip systemd[1]: Failed to start Docker Application Container Engine.


原因分析:

1.添加/etc/docker/daemon.json

{
        "storage-driver":"overlay2",
        "log-level":"debug",
        "debug":true
}

重启daemon

sudo systemctl daemon-reload

重启docker

sudo systemctl restart docker

报错

linaro@linaro-alip:~$ sudo systemctl restart docker
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.

无效还是无法启动

2.内核缺少bridge和br_netfilter模块

添加模块,Modprobe加载驱动问题 --oshan2012

无效还是无法启动

Docker 支持 参考Docker支持——Firefly Wiki
工具分享:检测内核配置是否支持Docker等容器
github下载会失败,或者直接下载check-config
检测结果:

Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_CPUSETS: enabled
- CONFIG_MEMCG: missing
- CONFIG_KEYS: enabled
- CONFIG_VETH: missing
- CONFIG_BRIDGE: missing
- CONFIG_BRIDGE_NETFILTER: missing
- CONFIG_IP_NF_FILTER: missing
- CONFIG_IP_NF_MANGLE: enabled
- CONFIG_IP_NF_TARGET_MASQUERADE: missing
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: missing
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: missing
- CONFIG_NETFILTER_XT_MATCH_IPVS: missing
- CONFIG_NETFILTER_XT_MARK: missing
- CONFIG_IP_NF_NAT: missing
- CONFIG_NF_NAT: missing
- CONFIG_POSIX_MQUEUE: missing
- CONFIG_NF_NAT_IPV4: missing
- CONFIG_NF_NAT_NEEDED: missing
- CONFIG_CGROUP_BPF: missing

Optional Features:
- CONFIG_USER_NS: enabled
- CONFIG_SECCOMP: enabled
- CONFIG_SECCOMP_FILTER: enabled
- CONFIG_CGROUP_PIDS: missing
- CONFIG_MEMCG_SWAP: missing
- CONFIG_MEMCG_SWAP_ENABLED: missing
- CONFIG_IOSCHED_CFQ: enabled
- CONFIG_CFQ_GROUP_IOSCHED: missing
- CONFIG_BLK_CGROUP: missing
- CONFIG_BLK_DEV_THROTTLING: missing
- CONFIG_CGROUP_PERF: missing
- CONFIG_CGROUP_HUGETLB: missing
- CONFIG_NET_CLS_CGROUP: missing
- CONFIG_CGROUP_NET_PRIO: missing
- CONFIG_CFS_BANDWIDTH: enabled
- CONFIG_FAIR_GROUP_SCHED: enabled
- CONFIG_IP_NF_TARGET_REDIRECT: missing
- CONFIG_IP_VS: missing
- CONFIG_IP_VS_NFCT: missing
- CONFIG_IP_VS_PROTO_TCP: missing
- CONFIG_IP_VS_PROTO_UDP: missing
- CONFIG_IP_VS_RR: missing
- CONFIG_SECURITY_SELINUX: missing
- CONFIG_SECURITY_APPARMOR: missing
- CONFIG_EXT4_FS: enabled
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: enabled
- Network Drivers:
  - "overlay":
    - CONFIG_VXLAN: missing
    - CONFIG_BRIDGE_VLAN_FILTERING: missing
      Optional (for encrypted networks):
      - CONFIG_CRYPTO: enabled
      - CONFIG_CRYPTO_AEAD: enabled
      - CONFIG_CRYPTO_GCM: enabled
      - CONFIG_CRYPTO_SEQIV: enabled
      - CONFIG_CRYPTO_GHASH: enabled
      - CONFIG_XFRM: enabled
      - CONFIG_XFRM_USER: enabled
      - CONFIG_XFRM_ALGO: enabled
      - CONFIG_INET_ESP: missing
      - CONFIG_NETFILTER_XT_MATCH_BPF: missing
      - CONFIG_INET_XFRM_MODE_TRANSPORT: missing
  - "ipvlan":
    - CONFIG_IPVLAN: missing
  - "macvlan":
    - CONFIG_MACVLAN: missing
    - CONFIG_DUMMY: missing
  - "ftp,tftp client in container":
    - CONFIG_NF_NAT_FTP: missing
    - CONFIG_NF_CONNTRACK_FTP: missing
    - CONFIG_NF_NAT_TFTP: missing
    - CONFIG_NF_CONNTRACK_TFTP: missing
- Storage Drivers:
  - "btrfs":
    - CONFIG_BTRFS_FS: missing
    - CONFIG_BTRFS_FS_POSIX_ACL: missing
  - "overlay":
    - CONFIG_OVERLAY_FS: missing
  - "zfs":
    - /dev/zfs: missing
    - zfs command: missing
    - zpool command: missing

Limits:
- /proc/sys/kernel/keys/root_maxkeys: 1000000

Generally Necessary: 表示必要的配置,如果有显示 missing 的地方,就需要在内核配置中打开它。 Optional Features: 是可选配置,根据需要打开。

需要去内核启用。重新编译后的镜像依然无法运行docker,可能是我编译的不对。

解决方案:

最终解决方法

感谢【非立创官方版本】LCEDA Tai-Shang Pi Linux SDK.立创开发板泰山派Linux SDK.
编译5.10的内核,直接通过上面编译或下载编译好的 update 提取码: a72u
默认用户名密码: neons

运行检测程序:

neons@neons:~$ ./check-config.sh
info: reading kernel config from /proc/config.gz ...

Generally Necessary:
- cgroup hierarchy: cgroupv2
  Controllers:
  - cpu: available
  - cpuset: available
  - io: available
  - memory: available
  - pids: available
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_CPUSETS: enabled
- CONFIG_MEMCG: enabled
- CONFIG_KEYS: enabled
- CONFIG_VETH: enabled
- CONFIG_BRIDGE: enabled
- CONFIG_BRIDGE_NETFILTER: enabled
- CONFIG_IP_NF_FILTER: enabled
- CONFIG_IP_NF_MANGLE: enabled
- CONFIG_IP_NF_TARGET_MASQUERADE: enabled
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled
- CONFIG_NETFILTER_XT_MATCH_IPVS: enabled
- CONFIG_NETFILTER_XT_MARK: enabled
- CONFIG_IP_NF_NAT: enabled
- CONFIG_NF_NAT: enabled
- CONFIG_POSIX_MQUEUE: enabled
- CONFIG_CGROUP_BPF: enabled

Optional Features:
- CONFIG_USER_NS: enabled
- CONFIG_SECCOMP: enabled
- CONFIG_SECCOMP_FILTER: enabled
- CONFIG_CGROUP_PIDS: enabled
- CONFIG_MEMCG_SWAP: enabled
    (cgroup swap accounting is currently enabled)
- CONFIG_BLK_CGROUP: enabled
- CONFIG_BLK_DEV_THROTTLING: enabled
- CONFIG_CGROUP_PERF: enabled
- CONFIG_CGROUP_HUGETLB: enabled
- CONFIG_NET_CLS_CGROUP: enabled
- CONFIG_CGROUP_NET_PRIO: enabled
- CONFIG_CFS_BANDWIDTH: enabled
- CONFIG_FAIR_GROUP_SCHED: enabled
- CONFIG_IP_NF_TARGET_REDIRECT: enabled
- CONFIG_IP_VS: enabled
- CONFIG_IP_VS_NFCT: enabled
- CONFIG_IP_VS_PROTO_TCP: enabled
- CONFIG_IP_VS_PROTO_UDP: enabled
- CONFIG_IP_VS_RR: enabled
- CONFIG_SECURITY_SELINUX: missing
- CONFIG_SECURITY_APPARMOR: missing
- CONFIG_EXT4_FS: enabled
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: enabled
- Network Drivers:
  - "overlay":
    - CONFIG_VXLAN: enabled
    - CONFIG_BRIDGE_VLAN_FILTERING: enabled
      Optional (for encrypted networks):
      - CONFIG_CRYPTO: enabled
      - CONFIG_CRYPTO_AEAD: enabled
      - CONFIG_CRYPTO_GCM: enabled
      - CONFIG_CRYPTO_SEQIV: enabled
      - CONFIG_CRYPTO_GHASH: enabled
      - CONFIG_XFRM: enabled
      - CONFIG_XFRM_USER: enabled
      - CONFIG_XFRM_ALGO: enabled
      - CONFIG_INET_ESP: enabled
      - CONFIG_NETFILTER_XT_MATCH_BPF: missing
  - "ipvlan":
    - CONFIG_IPVLAN: enabled
  - "macvlan":
    - CONFIG_MACVLAN: enabled
    - CONFIG_DUMMY: enabled
  - "ftp,tftp client in container":
    - CONFIG_NF_NAT_FTP: enabled
    - CONFIG_NF_CONNTRACK_FTP: enabled
    - CONFIG_NF_NAT_TFTP: enabled
    - CONFIG_NF_CONNTRACK_TFTP: enabled
- Storage Drivers:
  - "btrfs":
    - CONFIG_BTRFS_FS: enabled
    - CONFIG_BTRFS_FS_POSIX_ACL: enabled
  - "overlay":
    - CONFIG_OVERLAY_FS: enabled
  - "zfs":
    - /dev/zfs: missing
    - zfs command: missing
    - zpool command: missing

Limits:
- /proc/sys/kernel/keys/root_maxkeys: 1000000


所有必要配置已启用。

安装docker遇到的错误

iptables/1.8.7 Failed to initialize nft: Protocol not supported

参考系统篇:ubuntu 22.04 iptables 运行失败解决方法

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

重启后成功运行docker

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
如果在Linux上安装Docker失败,可能有几个可能的原因。首先,确保您按照适用于您的Linux发行版的正确安装指南进行操作。可以参考Docker官方文档提供的针对不同Linux发行版的安装指南,如和所述。 如果您按照指南操作仍然无法成功安装Docker,以下是一些可能导致安装失败的常见问题和解决方法: 1. 依赖项问题:Docker安装过程中需要一些依赖项。请确保您已经安装了这些依赖项,并且版本与Docker要求的兼容。例如,在Ubuntu上运行以下命令来安装Docker的依赖项: ```shell sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common ``` 2. 网络问题:有时候,安装过程中可能由于网络问题而失败。请确保您的网络连接正常,并且没有被防火墙或代理所阻止。您可以尝试使用其他网络连接或者尝试连接到不同的软件源。 3. 操作系统版本问题:某些较旧的Linux发行版可能不支持Docker的最新版本。如果您的操作系统版本过旧,建议升级到较新的版本,以便与Docker兼容。 4. 其他冲突软件或配置问题:如果您的系统上已经安装了其他与Docker冲突的软件或相关配置存在问题,可能会导致安装失败。在安装Docker之前,建议先检查系统上是否存在与Docker冲突的软件或配置,并进行相应的调整或删除。 此外,在尝试重新安装之前,您可以查看Docker安装日志以获取更多详细信息,以帮助确定失败的原因。您可以检查日志文件以了解有关安装失败的原因,并根据错误消息进行相应的修复。 总的来说,确保按照适用于您的Linux发行版的正确安装指南进行操作,并仔细检查和解决常见的安装失败问题,可以提高成功安装Docker的机会。 : Docker Documentation - Install Docker Engine on Ubuntu: https://docs.docker.com/engine/install/ubuntu/ : Docker Documentation - Install Docker Engine on CentOS: https://docs.docker.com/engine/install/centos/ : Docker Documentation - Start Docker service: https://docs.docker.com/engine/install/linux-postinstall/#configure-docker-to-start-on-boot
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值