经过了漫长时间的移植和查询资料, 得以解决一下嵌入式 docker 出现的问题, 很多网上的资料全都是复制粘贴复制粘贴, 找不到合适的解决方法让人很是苦恼, 希望自己总结出的一些解决问题的经验给广大朋友减少一些负担吧!
1.standard 文件找不到:
解决方法:
- tar zcvf xtables /usr/lib64/xtables
- cp xtables.tar /work/initramfs/
需要到同内核同系统的另一台服务器打包在解压
2. 需要 iptables 支持才能启动 docker, 移植 iptables 在启动 docker 错误:
解决方法:
- docker --iptables=false
- nohup docker --iptables=false>/1.txt 2>&1 &(后台启动)
3. 缺少 nat 防火墙的网络连接模块:
解决方法:
modprobe iptable_nat
4. 进入 docker 镜像出现问题, 缺少 veth 模块, 直接加载
解决方法:
modprobe veth
5. 进入 docker 镜像文件系统不符合, pivot root invalid argumen
解决方法:
- cat>/etc/systemd/system/docker.service.d/10-ramdisk.conf <<EOF
- > [Service]
- > Environment=DOCKER_RAMDISK=true
- > EOF
- export DOCKER_RAMDISK=true
在 kill 掉用刚才方法启动的 docker, 重启就 OK 了
补充两点有的做完以上步骤, 移植的 docker 就可以使用了, 但是偶尔会出现以下的一种问题.
出现缺少的 DNS 的文件内容, 把任何一台的 resolv.conf 文件传过去就 OK 了.
附一张移植后加载的模块驱动:
来源: http://blog.51cto.com/13401435/2438239