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

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

相关推荐
余—笙1 小时前
Docker安装rabbitmq并安装延迟队列插件
docker·容器·rabbitmq
韩楚风2 小时前
【参天引擎】一次宕机后的数据恢复,让我把 Cantian 持久化与恢复的六大机制全搞明白了
服务器·网络·数据库·分布式·mysql·架构·cantian
Slice_cy2 小时前
Mint 自研框架设计与实现:从重复开发走向配置驱动(五)
前端·后端·架构
heimeiyingwang2 小时前
【架构实战】Helm Chart 进阶:依赖管理、测试与 CI/CD 集成
ci/cd·架构
四眼肥鱼2 小时前
【Nextjs】macos 系统运行报错:Error: Cannot find module '../lightningcss.darwin-x64.node'
前端·架构·前端框架
心念枕惊3 小时前
Docker--Docker Swarm集群
运维·docker·容器
GitLqr3 小时前
别被“Flutter 传感器延迟 150ms”带偏了:这可能只是你的实现方式错了
flutter·架构·kotlin
SamDeepThinking3 小时前
微信支付对接实战:从下单到回调的完整落地过程
后端·程序员·架构
敖行客 Allthinker3 小时前
docker容器安装Python反推镜像步骤(适用于临时调试用)
python·docker·容器
Slice_cy4 小时前
Mint 自研框架设计与实现:从重复开发走向配置驱动(三)
前端·后端·架构