卸载旧版本
Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。如果已安装,请卸载它们:
sudo apt remove docker docker-engine docker.io containerd runc
当前称为 Docker Engine-Community 软件包 docker-ce
使用docker仓库进行安装
1、添加仓库地址
更新apt索引
sudo apt update
2、安装 apt 依赖包,用于通过HTTPS来获取仓库:
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
3、添加 Docker 的官方 GPG 密钥:
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
4、通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥
sudo apt-key fingerprint 0EBFCD88
5、设置稳定版仓库
sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \ $(lsb_release -cs) \ stable"
6、更新apt包索引
sudo apt update
7、安装指定版本的docker
apt-cache madison docker-ce
选择指定版本安装
sudo apt-get install docker-ce=5:20.10.11~3-0~ubuntu-bionic docker-ce-cli=5:20.10.11~3-0~ubuntu-bionic containerd.io
8、测试安装是否成功
sudo docker run hello-world
打印以下信息说明安装成功
Docker的守护线程绑定的是unix socket,而不是TCP端口,这个套接字默认属于root,其他用户可以通过sudo去访问这个套接字文件。所以docker服务进程都是以root账户运行。
解决的方式是创建docker用户组,把用户加入到docker用户组里面。只要docker组里的用户都可以直接执行docker命令。
1、先查看是否有docker用户组
cat /etc/group | grep docker
如果没有就执行以下指令创建用户组
sudo groupadd docker
2、添加用户到用户组
sudo usermod -aG docker 用户名
3、检查是否添加成功
4、重启docker
sudo systemctl restart docker
5、给docker.sock添加权限
sudo chmod a+rw /var/run/docker.sock