ARM 架构 Linux 使用 docker compose 教程
前言
这两天火爆的甲骨文 ARM 实例经过折腾基本把环境配置完毕,但是最后发现 docker compose 原生无法支持 ARM ,查了一圈资料发现都是需要自编译,而且相关文献都是国外针对树莓派的一些案例.最后还是在国外知名的linuxserver.io
上找到了方法.整理下水一片中文教程.
原理
目前的 ARM 版本方案的 docker compose 并不是编译获得执行文件,而是使用官方的仓库进行 docker 容器化编译成镜像,然后在需要docker-compose up -d
等操作的目录中来启动容器代为编排启动.由于编译教程都很古老,博主尝试了几次都失败,但是linuxserver.io
已经提供了编译好的镜像可以直接使用.
教程
本文教程基于 Oracle Linux 系统
镜像使用
使用非常简单,在需要docker-compose up -d
命令的目录中执行以下命令即可:
docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "$PWD:$PWD" \ -w="$PWD" \ linuxserver/docker-compose \ up
其中最后一行的up
是命令,根据需求自行修改,例如up -d
,down
,restart
等.本容器命令也自带--rm
参数,执行完毕自动删除compose 容器
,并不会给系统带了无用的多余容器.
推荐脚本模拟镜像使用
官方推荐
用更加方便的方式,通过脚本文件修改为/usr/local/bin/docker-compose
,就可以像X86
架构一样,直接执行docker-compose up -d
等操作了.不过原理上还是使用上述的容器来执行.这样使用起来更加方便和熟悉.执行以下两行命令即可:
sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
Tips
博主平时使用docker-compose
会传递一些宿主机的系统环境变量,例如$HOSTNAME
到容器中,在常规X86
的系统下 docker-compose 本身是在宿主机运行,所以没什么问题.而现在ARM
的使用方式是需要利用容器来帮忙运行docker-compose
,所需的环境变量自然是变成了这个中间帮忙的容器的变量.目前只能通过修改/usr/local/bin/docker-compose
脚本来实现.
例如,将/usr/local/bin/docker-compose
最后一行的exec docker run --rm .....
命令中追加为exec docker run --rm --hostname=$HOSTNAME .....
,这样就可以将宿主机的主机名带入至docker-compose 容器
,在带入进需要启动的容器中.
结语
后续更多关于甲骨文的一些使用心得会持续更新,欢迎收藏本站或订阅RSS
源.
甲骨文云 Oracle Cloud 免费 ARM 实例关于引导卷扩容 yum docker 等相关解决方案
本站提供免费和付费的技术支持.你可以通过留言,邮件,QQ的方式来进行技术交流和免费咨询.同时也可以付费支持的方式获得相关的技术支持,项目部署配置等服务.具体相关详情请点击查看 技术支持页面