docker在arm64架构ubuntu系统的安装

卸载可能存在的旧版本

bash 复制代码
sudo apt remove docker docker-engine docker-ce docker-io

安装依赖使apt可通过HTTPS下载包

bash 复制代码
sudo apt update && apt install -y apt-tranport-https ca-certificates curl 
software-properties-common

apt-transport-https用于支持通过HTTPS协议下载软件包,ca-certificates是用于管理SSL/TLS证书的软件包,software-properties-common 是一个用于管理软件源的工具

添加docker密钥

阿里云docker源

bash 复制代码
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

sudo apt-key add - 命令将GPG密钥添加到apt软件包管理器的受信任密钥列表中,末尾的-表示从标准输入中读取密钥。-fsSL是curl命令的选项,-f在服务器错误时静默失败,-s静默模式,不显示进度或错误消息,-S如果有错误则显示错误信息,-L跟踪重定向

官方docker源

bash 复制代码
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

添加对应的docker源(和上一步一致)

阿里云

bash 复制代码
sudo add-apt-repository "deb [arch=arm64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

官方源

bash 复制代码
sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

add-apt-repository: 这个命令用于添加一个软件源(repository)到 Ubuntu 的软件仓库列表中

"deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable": 这是要添加的软件源的描述。

  • deb 表示这是一个 Debian 软件包仓库。
  • [arch=arm64] 表示这个软件源适用于 arm64 架构的处理器。
  • https://download.docker.com/linux/ubuntu 是软件源的 URL。
  • $(lsb_release -cs) 是 Ubuntu 的发行版代号,用于指定要添加软件源的 Ubuntu 版本。
  • stable 指定所添加的软件源的版本为稳定版。

因此,这个命令将会添加一个适用于 arm64 架构的 Docker CE 的软件包仓库,该仓库的 URL 为 https://download.docker.com/linux/ubuntu,软件源版本为稳定版,并根据当前 Ubuntu 的发行版代号自动选择正确的仓库版本。

安装docker

bash 复制代码
sudo apt update && apt install -y docker-ce

配置镜像仓库

bash 复制代码
mkdir /etc/docker
cat > /etc/docker/daemon.json << EOF
{
    "registry-mirrors": [
        "https://docker.mirrors.ustc.edu.cn/"
    ]
}
EOF
# 设置完成后重启
sudo systemctl daemon-reload
sudo systemctl restart docker

cat > /etc/docker/daemon.json << EOF这个命令将会把下面的文本块写入 /etc/docker/daemon.json 文件中,<< EOF 告诉 shell 接下来的文本块作为输入,并以 EOF 结束。

除了上述修改方式以外,还可以直接编辑/lib/systemd/system/docker.service 文件,修改启动命令的命令选项,指定镜像仓库参数(---registry-mirror):


其他

使用docker命令时可能会报下面的错误:

bash 复制代码
docker pull nginx:1.14 [22:29:13]
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=nginx&tag=1.14": dial unix /var/run/docker.sock: connect: permission denied

这个错误提示显示了 Docker 客户端无法连接到 Docker 守护进程,因为没有足够的权限。

通常情况下,只有具有管理员权限的用户才能访问 Docker 守护进程。如果您是普通用户,可以尝试以下方法解决这个问题:

将用户添加到 docker 用户组中:

bash 复制代码
sudo usermod -aG docker $USER

这个命令将当前用户添加到 docker 用户组中,这个用户组拥有访问 Docker 守护进程的权限。注意,这个命令需要以管理员权限运行。

修改完成后需要退出终端并重新登陆。

相关推荐
天空属于哈夫克34 天前
企业微信二次开发:精准实现关键词自动回复
架构·企业微信
分布式存储与RustFS4 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
晨米酱4 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
这个DBA有点耶4 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
码流子4 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
玉&心4 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
moMo4 天前
从固定流程到问题路由:让 LangGraph RAG 按需检索
架构
xing-xing4 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
guo_wen_qiang4 天前
上传本地镜像到harbor中
docker·容器·持续部署
羑悻的小杀马特4 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作