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 守护进程的权限。注意,这个命令需要以管理员权限运行。

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

相关推荐
一只废狗狗狗狗狗狗狗狗狗10 分钟前
基于docker desktop的hadoop集群结点启动失败问题
hadoop·docker·docker desktop
HIT_Weston1 小时前
77、【Ubuntu】【Hugo】搭建私人博客:Detached HEAD
linux·运维·ubuntu
木童6621 小时前
Ruo-Yi 项目 CICD 完整部署文档(含命令详解)
ci/cd·docker·容器
程序员侠客行2 小时前
Mybatis二级缓存实现详解
java·数据库·后端·架构·mybatis
AutoMQ3 小时前
🎉 庆祝 AutoMQ 在 GitHub 上突破 9k Stars!
架构
幺零九零零3 小时前
Docker底层- 命令详解
运维·docker·容器
Xの哲學3 小时前
Linux CFS 调度器深度解析
linux·服务器·算法·架构·边缘计算
网络风云4 小时前
Flask 的 Docker 部署指南
python·docker·flask
阳光普照世界和平4 小时前
2025年智能体架构与主流技术深度研究报告:从生成式AI迈向自主执行层
人工智能·架构
DigitalOcean4 小时前
Ubuntu/Debian VPS 上 Apache Web 服务器的完整配置教程
ubuntu·apache