专栏首页实战docker树莓派4B安装docker-compose(64位Linux)

树莓派4B安装docker-compose(64位Linux)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/boling_cavalry/article/details/101105693

准备工作

树莓派4B已装好64位Linux,并且装好了19.03.1版本的Docker,具体的安装步骤请参考《树莓派4B安装64位Linux(不用显示器键盘鼠标)》

安装docker-compose的步骤

  1. apt更新:
apt-get update
  1. 安装python和pip:
apt-get install -y python python-pip
  1. 安装libffi-dev:
apt-get install libffi-dev

如果不安装libffi-dev的话,接下来在安装docker-compose的时候会报错,提示找不到ffi.h文件,错误信息如下:

aarch64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-md9kAN/python2.7-2.7.16=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python2.7 -c c/_cffi_backend.c -o build/temp.linux-aarch64-2.7/c/_cffi_backend.o
    c/_cffi_backend.c:15:10: fatal error: ffi.h: No such file or directory
     #include <ffi.h>
              ^~~~~~~
    compilation terminated.
    error: command 'aarch64-linux-gnu-gcc' failed with exit status 1
  1. 用pip安装docker-compose:
pip install docker-compose
  1. 将python2.7的dist-packages文件夹复制到docker的工作目录下:
cd  /usr/local/lib/python2.7/dist-packages && \
cp -r backports /usr/local/lib/python2.7/dist-packages/docker/transport/

如果不执行此操作,接下来在执行docker-compose命令的时候会报错,提示找不到名为ssl_match_hostname的module,错误信息如下:

  File "/usr/local/lib/python2.7/dist-packages/docker/tls.py", line 5, in <module>
    from .transport import SSLHTTPAdapter
  File "/usr/local/lib/python2.7/dist-packages/docker/transport/__init__.py", line 3, in <module>
    from .ssladapter import SSLHTTPAdapter
  File "/usr/local/lib/python2.7/dist-packages/docker/transport/ssladapter.py", line 23, in <module>
    from backports.ssl_match_hostname import match_hostname
ImportError: No module named ssl_match_hostname
  1. 此时已经安装成功了,执行命令docker-compose version试试:
root@raspbian:~# docker-compose version
docker-compose version 1.24.1, build 4667896
docker-py version: 3.7.3
CPython version: 2.7.16
OpenSSL version: OpenSSL 1.1.1c  28 May 2019

至此,在64位操作系统上安装docker-compose已经成功,希望您在安装的时候,本文能给您一些参考;

为什么不用官方的安装方式

无论何时,官方的安装方法都是首选,那么本文为何要自己折腾这么多步骤呢?

  1. 我们来看下官方安装docker-compose的步骤,地址是:https://docs.docker.com/compose/install/ ,第一步是下载:
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. 上述命令是下载指定地址的文件,这个地址的具体内容,我们可以用echo命令来查看:
root@raspbian:~/harbor# echo https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)
https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-aarch64

从上述控制台信息可见,docker-compose的下载地址是https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-aarch64,这样的地址能否下载到对应的文件,您将其粘贴在浏览器访问一下便知道,这个地址会返回404错误; 3. 在一台x86架构的Linux服务器上试试,上述下载命令对应的地址是https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64,此地址是有效的,因此可以得出一个结论:docker官方并没有发布64位ARM架构的docker-compose安装文件 4. 如下图,在官方文档上可以看到1.24.1版的docker-compose共发布三个,没有ARM架构:

综上所述,在Docker官方不支持的背景下,只能采用变通策略,用pip来安装了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ubuntu中eclipse 不支持gbk编码问题解决办法

    今天在ubuntu 下, 把Windows下工程导入Linux下Eclipse中,由于工程代码,是GBK编码,而Ubuntu默认不支持GBK编码,所以,要让Ub...

    chaplinthink
  • Linux shell 脚本(三)

    #告诉chkconfig 我们这个脚本适用于那几个级别,切换到这个运行级别的进程启动顺序是90 ,停止这个进程顺序是 #10

    chaplinthink
  • Linux+.Net Core+Nginx(在Linux上使用Nginx反向代理.Net Core 项目)

    之前的文章中有提到关于使用Nginx在linux来实现反向代理,今天我们继续加点料。在Centos7中部署.NetCore,然后使用Nginx进行反向代理!

    小世界的野孩子
  • Linux 多线程编程

    Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用libpthr...

    chaplinthink
  • 在Linux(Centos7)上使用Docker运行.NetCore

    在上一篇中我们写了如何在windows中使用docker运行.netcore,既然我们了解了windows下的运行发布,我们也可以试试linux下使用docke...

    小世界的野孩子
  • ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路

       最近一段时间自己主要的学习计划还是按照毕业后设定的计划,自己一步步的搭建一个前后端分离的 ASP.NET Core 项目,目前也还在继续学习 Vue 中,...

    程序员宇说
  • nodes.js详细安装

    Node.js安装包及源码下载地址为:https://nodejs.org/en/download/。

    小小咸鱼YwY
  • Shell脚本分析服务器性能

    我们原先在服务器上想分析性能指标,需要执行一系列的linux命令。对于linux命令不熟悉的人来说,比较困难

    飞天小子
  • 使用MongoDB在项目中实际运用

    一、MongoDB,一个数据库,我们怎么去使用它呢?我们首先了解一下什么是MongoDb

    小世界的野孩子
  • Sysbench Sysbench在centos系统下的安装

    http://vault.centos.org/7.1.1503/isos/x86_64/

    授客

扫码关注云+社区

领取腾讯云代金券