Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。如果已安装,请卸载它们。
sudo apt-get remove docker docker-engine docker.io containerd runc
当前称为 Docker Engine-Community 软件包 docker-ce 。
在新主机上首次安装Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker 。
更新 apt 包索引:
sudo apt-get update
安装 apt 依赖包,用于通过HTTPS来获取仓库:
- sudo apt-get install \
- apt-transport-https \
- ca-certificates \
- curl \
- gnupg-agent \
- software-properties-common
添加 Docker 的官方 GPG 密钥:
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥。
sudo apt-key fingerprint 0EBFCD88
使用以下指令设置稳定版仓库:
- sudo add-apt-repository \
- "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
- $(lsb_release -cs) \
- stable"
更新 apt 包索引:
sudo apt-get update
安装最新版本的 Docker Engine-Community 和 containerd:
sudo apt-get install docker-ce docker-ce-cli containerd.io
或者安装特定版本的 Docker Engine-Community,请在仓库中列出可用版本:
apt-cache madison docker-ce
使用第二列中的版本字符串安装特定版本,例如 5:20.10.20~3-0~ubuntu-jammy。
sudo apt-get install docker-ce= docker-ce-cli= containerd.io
sudo docker run hello-world
(1)#代表root管理员权限
(2)$代表普通用户
在运行 docker 的命令时必须加上 sudo,例如:sudo docker ps -a ,但是我们其实更希望能够直接通过docker ps -a来运行 docker 命令。
解决办法:
测试docker命令是否可以使用sudo正常使用:
切换当前会话到新 group 或者重启会话。可以通过 newgrp docker切换当前用户组到 docker 用户组。
注意:这一步是必须的,否则 groups 命令获取到的是缓存的用户组信息,刚添加的用户组信息可能还未能生效,所以docker ps -a执行时同样会有错。
但有时还会遇到下面的问题,导致仍然无法直接通过docker ps -a访问 docker 命令。
如果在确定了用户组的设置是正确的情况下,再次遇到这个问题,就是由于/var/run/docker.sock文件的权限不够导致的。
ls -lrth /var/run/docker.sock
sudo chmod666 /var/run/docker.sock更改权限。
再次查看docker.sock 的权限,这样就可以直接通过docker ps -a这样的方式操作docker命令,而不用每次都加上sudo了