因为鲲鹏920处理是ARM架构的,所以一般的x86架构的包是不能安装的,该文档主要基于arm版本的centos7系统来编写(其他arm系统也可参考本文档)。

:::info 另附上一个华为官方的arm版本centos软件源:
https://repo.huaweicloud.com/centos-altarch/7/os/aarch64/Packages/ :::

1、下载docker官方提供的aarch64的二进制软件包

可使用PC输入链接下载后再拷贝到服务器上(针对服务器不能连外网的情况),也可以直接在服务器上使用wget命令进行下载

  1. # 此处提供的19.03.6版本的docker,如果需要其他版本直接修改版本号即可
  2. wget -c https://download.docker.com/linux/static/stable/aarch64/docker-19.03.6.tgz

2、解压包并拷贝文件到/usr/bin目录

先解压下载的docker二进制包:

  1. tar -xvf docker-19.03.06.tgz

然后拷贝./docker/目录下的所有文件到/usr/bin/:

  1. mv docker/* /usr/bin/

3、配置system服务以及开机自启

i、新增systemd的配置文件

把docker服务加入到systemd中来维护,需要在/lib/systemd/system/目录下新增docker.servicedocker.socket文件,该文件的内容可从docker的官方github对应分支的contrib/init/systemd/目录下获取,可以直接拷贝文件内容使用。

:::info 对应链接如下:
https://github.com/docker/engine/tree/19.03/contrib/init/systemd :::

版本需与docker版本一致,上面的链接适配的是docker 19.03版本,如需其他版本修改链接中的版本号即可

  • docker.service
  1. # /lib/systemd/system/docker.service
  2. # 也可直接复制以下内容
  3. # 注意该内容只适配docker19.03版本,其他版本使用可能会导致docker不能正常启动
  4. [Unit]
  5. Description=Docker Application Container Engine
  6. Documentation=https://docs.docker.com
  7. After=network-online.target docker.socket firewalld.service
  8. Wants=network-online.target
  9. Requires=docker.socket
  10. [Service]
  11. Type=notify
  12. # the default is not to use systemd for cgroups because the delegate issues still
  13. # exists and systemd currently does not support the cgroup feature set required
  14. # for containers run by docker
  15. ExecStart=/usr/bin/dockerd -H fd://
  16. ExecReload=/bin/kill -s HUP $MAINPID
  17. LimitNOFILE=1048576
  18. # Having non-zero Limit*s causes performance problems due to accounting overhead
  19. # in the kernel. We recommend using cgroups to do container-local accounting.
  20. LimitNPROC=infinity
  21. LimitCORE=infinity
  22. # Uncomment TasksMax if your systemd version supports it.
  23. # Only systemd 226 and above support this version.
  24. #TasksMax=infinity
  25. TimeoutStartSec=0
  26. # set delegate yes so that systemd does not reset the cgroups of docker containers
  27. Delegate=yes
  28. # kill only the docker process, not all processes in the cgroup
  29. KillMode=process
  30. # restart the docker process if it exits prematurely
  31. Restart=on-failure
  32. StartLimitBurst=3
  33. StartLimitInterval=60s
  34. [Install]
  35. WantedBy=multi-user.target
  • docker.socket
  1. # /lib/systemd/system/docker.socket
  2. # 也可直接复制以下内容
  3. # 注意该内容只适配docker19.03版本,其他版本使用可能会导致docker不能正常启动
  4. [Unit]
  5. Description=Docker Socket for the API
  6. PartOf=docker.service
  7. [Socket]
  8. ListenStream=/var/run/docker.sock
  9. SocketMode=0660
  10. SocketUser=root
  11. SocketGroup=docker
  12. [Install]
  13. WantedBy=sockets.target

ii、新建docker用户及组

分别执行如下命令:

  1. #创建docker组
  2. groupadd docker
  3. #创建docker用户
  4. useradd docker -g docker

iii、启动docker服务

分别执行如下命令:

  1. #重新加载systemd配置
  2. systemctl daemon-reload
  3. #启动docker服务
  4. systemctl start docker

启动完成后执行docker version命令,如果能正确输出版本号则安装成功

iv、设置docker服务为开机自启

执行如下命令:

  1. systemctl enable docker