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

简介: 安装了64位Linux的树莓派4B,如何安装docker-compose,本文用实战完成了docker-compose的安装过程,并且将期间遇到的问题一一指出,避免您踩坑

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码): https://github.com/zq2599/blog_demos

准备工作

安装docker-compose的步骤

  • apt更新:
apt-get update
  • 安装python和pip:
apt-get install -y python python-pip
  • 安装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
  • 用pip安装docker-compose:
pip install docker-compose
  • 将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
  • 此时已经安装成功了,执行命令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已经成功,希望您在安装的时候,本文能给您一些参考;

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

  • 无论何时,官方的安装方法都是首选,那么本文为何要自己折腾这么多步骤呢?
  • 我们来看下官方安装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
  • 上述命令是下载指定地址的文件,这个地址的具体内容,我们可以用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官方不支持的背景下,只能采用变通策略,用pip来安装了。

欢迎关注阿里云开发者社区博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...
相关文章
|
2月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
172 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
2月前
|
消息中间件 Kafka Linux
Linux下安装Kafka 3.9.1
本文介绍Kafka 3.9.1版本的安装与配置,包括通过ZooKeeper或KRaft模式启动Kafka。涵盖环境变量设置、日志路径修改、集群UUID生成、存储格式化及服务启停操作,适用于Linux环境下的部署实践。
285 0
|
4月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
214 5
|
Linux Shell Docker
Docker基础技术:Linux Namespace【上】
点点收获: //之前发现Coolshell上好久不更新了, 博主果然去搞大业去了,只恨这几篇文章看到太晚了啊~太厉害了. 1.  clone(), unshare(), setns()初识; 主要是š三个系统调用 šclone() - 实现线程的系统调用,用来创建一个新的进程,并可以通过设计上述参数达到隔离。 šunshare() - 使某进程脱离某个namespace š
1904 0
|
Linux Shell Docker
Docker基础技术:Linux Namespace【下】
收获: 模仿docker0的那一套IP命令集,太TMD酷了!I'm starving. 另外两点: 1. 网络原理之后的Docker方面: Docker的resolv.conf没有用这样的方式,而是用了上篇中的Mount Namesapce的那种方式 另外,docker是用进程的PID来做Network Namespace的名称的。 2. IPVLAN  
1795 0