隨著容器化技術(shù)的興起,更多人開始關(guān)注如何將 Docker 運(yùn)行在 ARM 架構(gòu)的設(shè)備上,例如樹莓派或者 ARM 服務(wù)器。但是 Docker 官方并沒有提供 ARM 的官方發(fā)行版,需要用戶自行移植。
移植 Docker 到 ARM 架構(gòu)并不復(fù)雜,只需要遵循以下步驟:
$ git clone https://github.com/docker/docker.git $ cd docker $ ./hack/make.sh binary
這個(gè)過程將編譯 Docker 二進(jìn)制文件,其中包含 Unix 套接字代理。但是 ARM 設(shè)備并不支持 Unix 套接字,所以需要使用一個(gè)叫做 socat 的工具將 Unix 套接字轉(zhuǎn)換成 TCP 套接字。
在 ARM 設(shè)備上,需要首先安裝 socat 工具。運(yùn)行以下命令:
$ apt-get update && apt-get install socat
接下來需要將 Docker 引擎配置為使用 TCP 套接字代理。添加以下內(nèi)容到 /etc/default/docker 文件:
DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
最后,在 ARM 設(shè)備上啟動(dòng) Docker 引擎。運(yùn)行以下命令:
$ sudo socat TCP-LISTEN:2375,reuseaddr,fork UNIX-CLIENT:/var/run/docker.sock
這個(gè)命令將 socat 工具設(shè)置為將 TCP 套接字監(jiān)聽在 2375 端口上,并將 Unix 套接字客戶端連接到 /var/run/docker.sock ?,F(xiàn)在你可以使用 Docker 客戶端連接到 ARM 設(shè)備運(yùn)行 Docker 引擎。
移植 Docker 到 ARM 設(shè)備并不是難事,只需要遵循以上步驟即可。