随着容器化技术的兴起,更多人开始关注如何将 Docker 运行在 ARM 架构的设备上,例如树莓派或者 ARM 服务器。但是 Docker 官方并没有提供 ARM 的官方发行版,需要用户自行移植。
移植 Docker 到 ARM 架构并不复杂,只需要遵循以下步骤:
$ git clone https://github.com/docker/docker.git $ cd docker $ ./hack/make.sh binary
这个过程将编译 Docker 二进制文件,其中包含 Unix 套接字代理。但是 ARM 设备并不支持 Unix 套接字,所以需要使用一个叫做 socat 的工具将 Unix 套接字转换成 TCP 套接字。
在 ARM 设备上,需要首先安装 socat 工具。运行以下命令:
$ apt-get update && apt-get install socat
接下来需要将 Docker 引擎配置为使用 TCP 套接字代理。添加以下内容到 /etc/default/docker 文件:
DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
最后,在 ARM 设备上启动 Docker 引擎。运行以下命令:
$ sudo socat TCP-LISTEN:2375,reuseaddr,fork UNIX-CLIENT:/var/run/docker.sock
这个命令将 socat 工具设置为将 TCP 套接字监听在 2375 端口上,并将 Unix 套接字客户端连接到 /var/run/docker.sock 。现在你可以使用 Docker 客户端连接到 ARM 设备运行 Docker 引擎。
移植 Docker 到 ARM 设备并不是难事,只需要遵循以上步骤即可。