docker在arm64架构ubuntu系统的安装
卸载可能存在的旧版本
sudo apt remove docker docker-engine docker-ce docker-io
安装依赖使apt可通过HTTPS下载包
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源
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源
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
添加对应的docker源(和上一步一致)
阿里云
sudo add-apt-repository "deb [arch=arm64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
官方源
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
sudo apt update && apt install -y docker-ce
配置镜像仓库
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命令时可能会报下面的错误:
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
用户组中:
sudo usermod -aG docker $USER
这个命令将当前用户添加到 docker
用户组中,这个用户组拥有访问 Docker 守护进程的权限。注意,这个命令需要以管理员权限运行。
修改完成后需要退出终端并重新登陆。