ARM架构鲲鹏主机BClinux离线安装docker步骤
2024-10-29 11:22 狂澜与玉昆0950 阅读(190) 评论(0) 编辑 收藏 举报简介: 下载并安装适用于ARM架构的Docker CE二进制文件,解压后移动至/usr/bin目录。创建docker组,配置systemd服务脚本(docker.service、docker.socket、containerd.service),重载systemd配置,启动并启用docker服务。编辑daemon.json配置存储驱动、镜像加速地址等,最后拉取所需镜像。
■ 下载arm架构二进制文件安装包
1 2 | http://mirrors.163.com/docker-ce/linux/ static /stable/aarch64/ docker-27.3.1.tgz 21-Sep-2024 01:36 66M |
■ 解压二进制文件移动到 /usr/bin 目录
1 2 | tar -zxvf docker-27.3.1.tgz ls -l docker<br>chmod -R 777 docker/<br>chown -R root:root docker/<br>cp docker/* /usr/bin/ |
■ 测试启动
1 | dockerd |
■ 添加 docker 的 systemd 服务脚本
脚本参考自 https://github.com/docker/docker-ce
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | vim /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After =network-online.target docker.socket firewalld.service containerd.service Wants=network-online.target Requires=docker.socket containerd.service [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ExecReload=/bin/kill -s HUP $MAINPID TimeoutStartSec=0 RestartSec=2 Restart=always # Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229. # Both the old, and new location are accepted by systemd 229 and up, so using the old location # to make them work for either version of systemd. StartLimitBurst=3 # Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230. # Both the old, and new name are accepted by systemd 230 and up, so using the old name to make # this option work for either version of systemd. StartLimitInterval=60s # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container- local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Comment TasksMax if your systemd version does not support it. # Only systemd 226 and above support this option . TasksMax=infinity # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process OOMScoreAdjust=-500 [Install] WantedBy=multi- user .target |
■ 根据 docker.service 中 Unit.After 需求添加 docker.socket 脚本至 /usr/lib/systemd/system/
脚本参考自 https://github.com/docker/docker-ce
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | vim /usr/lib/systemd/system/docker.socket [Unit] Description=Docker Socket for the API [Socket] # If /var/run is not implemented as a symlink to /run, you may need to # specify ListenStream=/var/run/docker.sock instead . #ListenStream=/run/docker.sock ListenStream=/var/run/docker.sock SocketMode=0660 SocketUser=root SocketGroup=docker [Install] WantedBy=sockets.target |
■ 根据 docker.service 中 Unit.After 需求添加 containerd.service 脚本至 /usr/lib/systemd/system/
脚本参考自 https://github.com/containerd/containerd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | vim /usr/lib/systemd/system/containerd.service # Copyright The containerd Authors. # # Licensed under the Apache License, Version 2.0 (the "License" ); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. [Unit] Description=containerd container runtime Documentation=https://containerd.io After =network.target local -fs.target [Service] ExecStartPre=-/sbin/modprobe overlay ExecStart=/usr/bin/containerd Type=notify Delegate=yes KillMode=process Restart=always RestartSec=5 # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container- local accounting. LimitNPROC=infinity LimitCORE=infinity LimitNOFILE=infinity # Comment TasksMax if your systemd version does not supports it. # Only systemd 226 and above support this version. TasksMax=infinity OOMScoreAdjust=-999 [Install] WantedBy=multi- user .target |
■ 重载 systemd 配置文件
1 | systemctl daemon-reload |
■ 创建 docker 组
1 | echo "groupadd docker" > groupadd_docker.sh; sh groupadd_docker.sh |
如不创建 docker 组在通过 systemctl 启动时会报错如下
1 2 | Dependency failed for Docker Application Container Engine. Job docker.service/start failed with result 'dependency' . |
■ 启动 docker 服务
1 | systemctl status docker<br>systemctl start docker<br>systemctl enable docker<br><em id= "__mceDel" >systemctl restart docker</em> |
■ 配置合适的容器位置、网络镜像地址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | vim /etc/docker/daemon.json { "storage-driver" : "overlay2" , "registry-mirrors" : [ "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com" , "https://docker.m.daocloud.io" , "https://hub-mirror.c.163.com" , "https://mirror.baidubce.com" , "https://your_preferred_mirror" , "https://dockerhub.icu" , "https://docker.registry.cyou" , "https://docker-cf.registry.cyou" , "https://dockercf.jsdelivr.fyi" , "https://docker.jsdelivr.fyi" , "https://dockertest.jsdelivr.fyi" , "https://mirror.aliyuncs.com" , "https://dockerproxy.com" , "https://mirror.baidubce.com" , "https://docker.m.daocloud.io" , "https://docker.nju.edu.cn" , "https://docker.mirrors.sjtug.sjtu.edu.cn" , "https://docker.mirrors.ustc.edu.cn" , "https://mirror.iscas.ac.cn" , "https://docker.rainbond.cc" ], "exec-opts" : [ "native.cgroupdriver=systemd" ], "data-root" : "/database/docker" } |
■ 拉取想要的镜像
1 | docker pull oraclelinux:8 |
如无法 pull 则需配置合适的镜像地址,或者下载容器镜像。
■ 联网镜像,离线下载上传
1 2 3 4 5 6 7 8 9 | # 可联网主机 docker pull oraclelinux:8 docker save 0fdf2b4c26d3 > ansible_centos8.tar # 上传到无法联网机器后,导入镜像 docker load < ansible_centos8.tar # 启动镜像 docker run -d --volume=/database/ansible:/opt/ansible --restart=always --name=ansible2.9 6c66c9a2a8a9 # 进入docker docker exec -it ansible2.9 /bin/bash |
■ 上传磐维配置文件
1 2 3 4 5 6 7 8 9 10 11 12 | cd /opt/ansible tar xf ansible_panwei.tar.gz # 执行安装 ansible-playbook -i Ha_inventory_panwei_goldendb6.txt panwei_Ha_install.yaml > Ha_inventory_panwei_goldendb6_install.log # 配置计划任务定期删除日志、归档 ansible-playbook -i Ha_inventory_panwei_goldendb6.txt yaml/config_cron.yml > Ha_inventory_panwei_goldendb6_cleanarch.log # 配置callback.sh (ipv6) ansible-playbook -i Ha_inventory_panwei_goldendb6.txt yaml/callback.yaml > Ha_inventory_panwei_goldendb6_callback.log # 获取集群所有机器的机器码以便申请license ansible-playbook -i Ha_inventory_panwei_goldendb6.txt yaml/get_fingerprint.yml > Ha_inventory_panwei_goldendb6_license.log # 配置root不能直接登录 ansible-playbook -i Ha_inventory_panwei_goldendb6.txt yaml/norootlogin.yml > Ha_inventory_panwei_goldendb6_noroot.log |
end
我报路长嗟日暮,学诗谩有惊人句。
九万里风鹏正举。风休住,蓬舟吹取三山去!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示