最近的项目,需要部署在企业内网的ARM环境中,使用的是麒麟V10和飞腾CPU,需要部署docker环境。

整理了一下操作步骤。

下载预编译的二进制安装包

wget https://download.docker.com/linux/static/stable/x86_64/docker-26.1.4.tgz
wget -O docker-compose \
  https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-linux-x86_64

将安装包解压后,上传到待安装的服务器中,在ARM上部署时需要下载对应的安装包。

ubuntu@ubuntu:~/app/docker$ ls
containerd  containerd-shim-runc-v2  ctr  docker  docker-compose  dockerd  docker-init  docker-proxy  runc
ubuntu@ubuntu:~/app/docker$ scp * ubuntu@192.168.122.20:/home/ubuntu/setup
ubuntu@192.168.122.20's password: 
containerd                                                                          100%   37MB 414.5MB/s   00:00    
containerd-shim-runc-v2                                                             100%   12MB 872.6MB/s   00:00    
ctr                                                                                 100%   18MB 884.3MB/s   00:00    
docker                                                                              100%   37MB 671.1MB/s   00:00    
docker-compose                                                                      100%   60MB 813.2MB/s   00:00    
dockerd                                                                             100%   68MB 778.5MB/s   00:00    
docker-init                                                                         100%  692KB 674.6MB/s   00:00    
docker-proxy                                                                        100% 1934KB 633.9MB/s   00:00    
runc                                                                                100%   15MB 747.4MB/s   00:00    
ubuntu@ubuntu:~/app/docker$ 

开始安装

复制文件到/usr/local/bin,并确认程序有可执行权限

ubuntu@ubuntu:~/setup$ ll
total 255776
drwxrwxr-x 2 ubuntu ubuntu     4096 Dec 27 04:20 ./
drwxr-x--- 5 ubuntu ubuntu     4096 Dec 27 04:19 ../
-rwxr-xr-x 1 ubuntu ubuntu 39161856 Dec 27 04:20 containerd*
-rwxr-xr-x 1 ubuntu ubuntu 12496896 Dec 27 04:20 containerd-shim-runc-v2*
-rwxr-xr-x 1 ubuntu ubuntu 19361792 Dec 27 04:20 ctr*
-rwxr-xr-x 1 ubuntu ubuntu 38442504 Dec 27 04:20 docker*
-rwxrwxr-x 1 ubuntu ubuntu 63173250 Dec 27 04:20 docker-compose*
-rwxr-xr-x 1 ubuntu ubuntu 71297680 Dec 27 04:20 dockerd*
-rwxr-xr-x 1 ubuntu ubuntu   708448 Dec 27 04:20 docker-init*
-rwxr-xr-x 1 ubuntu ubuntu  1979949 Dec 27 04:20 docker-proxy*
-rwxr-xr-x 1 ubuntu ubuntu 15271888 Dec 27 04:20 runc*
ubuntu@ubuntu:~/setup$ ll /usr/local/bin
total 8
drwxr-xr-x  2 root root 4096 Sep 11  2024 ./
drwxr-xr-x 10 root root 4096 Sep 11  2024 ../
ubuntu@ubuntu:~/setup$ sudo cp * /usr/local/bin
ubuntu@ubuntu:~/setup$ ll /usr/local/bin
total 255776
drwxr-xr-x  2 root root     4096 Dec 27 04:23 ./
drwxr-xr-x 10 root root     4096 Sep 11  2024 ../
-rwxr-xr-x  1 root root 39161856 Dec 27 04:23 containerd*
-rwxr-xr-x  1 root root 12496896 Dec 27 04:23 containerd-shim-runc-v2*
-rwxr-xr-x  1 root root 19361792 Dec 27 04:23 ctr*
-rwxr-xr-x  1 root root 38442504 Dec 27 04:23 docker*
-rwxr-xr-x  1 root root 63173250 Dec 27 04:23 docker-compose*
-rwxr-xr-x  1 root root 71297680 Dec 27 04:23 dockerd*
-rwxr-xr-x  1 root root   708448 Dec 27 04:23 docker-init*
-rwxr-xr-x  1 root root  1979949 Dec 27 04:23 docker-proxy*
-rwxr-xr-x  1 root root 15271888 Dec 27 04:23 runc*
ubuntu@ubuntu:~/setup$ sudo chmod +x /usr/local/bin/*
ubuntu@ubuntu:~/setup$ 

目录准备

sudo mkdir -p /etc/docker
sudo mkdir -p /var/lib/docker
sudo mkdir -p /run/docker

将docker注册为服务

创建 docker.service

sudo vim /etc/systemd/system/docker.service

内容如下:

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/local/bin/dockerd \
  --host=unix:///var/run/docker.sock \
  --data-root=/var/lib/docker
ExecReload=/bin/kill -s HUP $MAINPID
Restart=always
RestartSec=5
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process

[Install]
WantedBy=multi-user.target

重新加载并启动

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable docker
sudo systemctl start docker

验证安装结果

docker -v
docker-compose -v
systemctl status docker
ubuntu@ubuntu:~$ systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/etc/systemd/system/docker.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2025-12-27 04:31:40 UTC; 3s ago
       Docs: https://docs.docker.com
   Main PID: 3190 (dockerd)
      Tasks: 17
     Memory: 32.5M
        CPU: 142ms
     CGroup: /system.slice/docker.service
             ├─3190 /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --data-root=/var/lib/docker
             └─3197 containerd --config /var/run/docker/containerd/containerd.toml

Dec 27 04:31:38 ubuntu dockerd[3197]: time="2025-12-27T04:31:38.788866020Z" level=info msg=serving... address=/var/ru>
Dec 27 04:31:38 ubuntu dockerd[3197]: time="2025-12-27T04:31:38.788882820Z" level=info msg=serving... address=/var/ru>
Dec 27 04:31:38 ubuntu dockerd[3197]: time="2025-12-27T04:31:38.788889758Z" level=info msg="containerd successfully b>
Dec 27 04:31:39 ubuntu dockerd[3190]: time="2025-12-27T04:31:39.767680352Z" level=info msg="detected 127.0.0.53 names>
Dec 27 04:31:39 ubuntu dockerd[3190]: time="2025-12-27T04:31:39.857511484Z" level=info msg="Loading containers: start>
Dec 27 04:31:39 ubuntu dockerd[3190]: time="2025-12-27T04:31:39.997925280Z" level=info msg="Loading containers: done."
Dec 27 04:31:40 ubuntu dockerd[3190]: time="2025-12-27T04:31:40.007374484Z" level=info msg="Docker daemon" commit=de5>
Dec 27 04:31:40 ubuntu dockerd[3190]: time="2025-12-27T04:31:40.007705360Z" level=info msg="Daemon has completed init>
Dec 27 04:31:40 ubuntu dockerd[3190]: time="2025-12-27T04:31:40.078253181Z" level=info msg="API listen on /var/run/do>
Dec 27 04:31:40 ubuntu systemd[1]: Started Docker Application Container Engine.
lines 1-22/22 (END)

ubuntu@ubuntu:~$ docker -v
Docker version 26.1.4, build 5650f9b
ubuntu@ubuntu:~$ docker-compose -v
Docker Compose version v2.29.2
ubuntu@ubuntu:~$ 

配置普通用户操作docker

sudo groupadd docker || true
sudo usermod -aG docker $USER
newgrp docker
ubuntu@ubuntu:~$ sudo groupadd docker || true
ubuntu@ubuntu:~$ sudo usermod -aG docker $USER
ubuntu@ubuntu:~$ newgrp docker
ubuntu@ubuntu:~$ 
ubuntu@ubuntu:~$ docker images
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied
ubuntu@ubuntu:~$ 

出现上面的权限问题,可以重启服务即可解决

ubuntu@ubuntu:~$ docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
ubuntu@ubuntu:~$ 

更多推荐