ARM版Docker安装实战
ARM版Docker安装实战
tags: 网站
个人网站:https://wanghualong.cn/
1 环境参考
硬件平台:Sail - i.max6Q 工业级开发板。(感谢电鱼公司无偿赞助开发板。公司主页:www.dianyu.net。)
操作系统: ubuntu 14.04(armhf)
2 安装基本软件
apt-get install curl wget apt-transport-https ca-certificates
3 更换系统软件源
备份原sources.list
文件
# 备份原文件 cp /etc/apt/sources.list /etc/apt/sources.list.bak
新建sources.list
# 新建文件 vi /etc/apt/sources.list
粘贴中科大Ubuntu armhf 源内容(Ubuntu 14.04 trusty)
中科大Ubuntu 14.04 trusty armhf 软件源(推荐https)
# 默认注释了源码仓库,如有需要可自行取消注释 deb https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty main restricted universe multiverse # deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty main main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-updates main restricted universe multiverse # deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-updates main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-backports main restricted universe multiverse # deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-backports main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-security main restricted universe multiverse # deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-security main restricted universe multiverse # 预发布软件源,不建议启用 # deb https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-proposed main restricted universe multiverse # deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-proposed main restricted universe multiverse
中科大Ubuntu 14.04 trusty armhf 软件源(http备选方案)
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty main multiverse restricted universe deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-backports main multiverse restricted universe deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-proposed main multiverse restricted universe deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-security main multiverse restricted universe deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-updates main multiverse restricted universe deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty main multiverse restricted universe deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-backports main multiverse restricted universe deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-proposed main multiverse restricted universe deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-security main multiverse restricted universe deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-updates main multiverse restricted universe
4 更新系统CA证书
# 下载证书 cacert.pem # 网址: https://curl.haxx.se/docs/caextract.html wget https://curl.haxx.se/ca/cacert.pem --no-check-certificate # 导入证书 # 转换为crt格式 openssl x509 -outform der -in cacert.pem -out cacert.crt # 复制到证书目录 sudo cp cacert.crt /usr/local/share/ca-certificates/cacert.crt # 添加证书到系统 sudo update-ca-certificates # 重启系统或重启特定服务使新证书生效 reboot
重启后 验证证书是否生效
# 访问https网站查看是否报证书错误 curl https://wanghualong.cn curl https://www.docker.com/
5 安装docker
按照docker官方文档(armhf)步骤安装docker-ce
# 1 更新源 sudo apt-get update # 2 添加系统https支持 sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common # 3 添加Docker官方GPG key curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 4 查看指纹与官方文档进行对比 apt-key fingerprint 0EBFCD88 # 5 添加Docker官方仓库(armhf) ## 实战中,按照官方文档命令添加源会将 sources.list 原有内容覆盖,建议手动添加防止出错。 ## vi /etc/apt/sources.list ## 末尾添加以下源 deb [arch=armhf] https://download.docker.com/linux/ubuntu trusty stable # 6 更新index文件 apt-get update # 7 安装Docker sudo apt-get install docker-ce
实战错误排除记录
安装完成后查看版本
docker version
root@localhost:/etc/apt# docker version Client: Version: 18.06.1-ce API version: 1.38 Go version: go1.10.3 Git commit: e68fc7a Built: Tue Aug 21 17:31:28 2018 OS/Arch: linux/arm Experimental: false Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? root@localhost:/etc/apt#
提示docker daemon 未运行,尝试重启docker daemon
# 重启docker服务 service docker restart
root@localhost:/etc/apt# service docker restart stop: Unknown instance: docker start/running, process 18039 root@localhost:/etc/apt#
重启未报错,但仍然提示docker daemon 未运行。
手动启动 dockerd 查看错误信息提示。
# 停止docker服务 service docker stop # 手动启动dockerd sudo dockerd
发现以下报错信息
末尾提示 cgroup
错误,往上还有auf
overlay
等文件系统错误,查看linux内核发现版本为4.1.15
属于较新版本内核,理应支持这些功能。
与硬件供应商沟通后,了解到此开发板的Ubuntu内核为自行编译版本,编译前会精简掉不需要的额外功能以降低系统资源消耗,可在编译之前打开相关选项。
按此推理,Ubuntu官方发行版本内核应该不会出现此错误(待实验考证)
联系硬件工程师打开cgroup
overlay
选项重新编译内核。
重新运行测试
末尾报iptables错误,经测试iptables已安装最新版本,初步排查为内核缺少ip_tables
模块。
联系硬件工程师重新编译内核,更新相关网络模块后,docker daemon成功运行.
root@localhost:~# docker version Client: Version: 18.06.1-ce API version: 1.38 Go version: go1.10.3 Git commit: e68fc7a Built: Tue Aug 21 17:31:28 2018 OS/Arch: linux/arm Experimental: false Server: Engine: Version: 18.06.1-ce API version: 1.38 (minimum version 1.12) Go version: go1.10.3 Git commit: e68fc7a Built: Tue Aug 21 17:27:15 2018 OS/Arch: linux/arm Experimental: false root@localhost:~#
尝试pull一个centos镜像
docker pull centos
root@localhost:~# docker pull centos Using default tag: latest Error response from daemon: Get https://registry-1.docker.io/v2/: x509: certificate has expired or is not yet valid
提示证书过期,之前已经更新过CA证书,怀疑是系统时间问题
# 查看系统时间 date
果然,更新内核后,系统时间变为了1970年
root@localhost:~# date Thu Jan 1 00:01:19 UTC 1970
更改为当前日期后,恢复正常。
root@localhost:~# docker pull centos Using default tag: latest latest: Pulling from library/centos f98cb03e8d55: Pull complete Digest: sha256:6f6d986d425aeabdc3a02cb61c02abb2e78e57357e92417d6d58332856024faf Status: Downloaded newer image for centos:latest root@localhost:~#
更新中。。。
2018年8月23日
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
快速了解云计算
云是将服务器虚拟化,形成虚拟资源池,相比于以前的物理机更加节省资源成本,便于管理。云是计算、存储、网路资源池化的概念。我们每天使用的搜索引擎、邮箱、网盘,就是很标准的云,而这大多都是免费的。云是对互联网的升级,意味着互联网并不仅仅是存储数据,而是为你提供某种服务。云计算、云存储、云服务、云平台等就是利用云通过一堆机器经过网络组合到一起的不同形式,是云下面的子概念。总的来说就是,云服务=云平台,云服务=云计算+云存储!云计算随着互联网的发展,云服务和应用也变得越来越复杂,需要支持更多的用户、需要更强的计算能力、需要更加稳定安全等等。用传统的方法比如配备更加完备的IT运维部门将会耗费大量的精力和财力,而且对于大公司来说需求仍会难以满足,对于那些中小规模的企业,甚至个人创业者来说,创造软件产品的运维成本就更加难以承受了。而“云计算”出现以后就可以完美的解决这个问题。将应用部署到云端后,就不必再关注那些令人头疼的硬件和软件问题,它们会由云服务提供商的专业团队去解决。使用的是共享的硬件,只要按照你的需求买了这个云服务就可以使用了关于软件的更新,资源的按需扩展都能自动完成。云计算具有大规模分布式、...
- 下一篇
2018 年 Docker 大事件回顾,Docker Compose 助力简化 Kubernetes 体验
出品丨Docker公司(ID:docker-cn)编译丨小东每周一、三、五,与您不见不散! 随着2018年的结束,我们将回顾排名前五的最受读者欢迎的文章。今天将分享该系列的最后一篇文章,Docker Compose 助力 Kubernetes,帮您轻松上手 Kubernetes。 随着 Docker 对 Kubernetes 开放 Docker Compose的支持,现在的用户可以选择在任意 Kubernetes 集群上使用这个全新的功能。 如果已经拥有 Kubernetes 为什么还需要 Compose 呢? Kubernetes API 非常庞大。最新版本中有超过50个第一梯队的对象,从 Pods 和 Deployments 到 Validating Webhook Configuration 和 ResourceQuota。这无疑会导致配置的冗长,这就需要由开发人员进行管理。让我们看一个具体的例子: Sock Shop 是微服务应用程序的典型示例。它是由使用多种技术和后端组成的多个服务,所有 服务都打包成为 Docker 镜像。它还提供了使用不同工具的示例配置,包括 Compos...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启