1、安装必要的软件包,确保docker可以正常安装与运行
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
2、添加docker官方的GPG密钥,保证下载的docker软件包是官方提供的
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
3、添加docker软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4、更新软件包索引
sudo apt update
5、安装docker
sudo apt install docker-ce
6、docker安装验证,输出docker版本信息则说明安装成功,若无版本提示,可以使用下一步进行docker启动测试
sudo docker --version
7、启动docker服务、设置系统启动时docker自动启动(一般docker安装完后会自动启动与设置,若未启动则执行此步骤)
sudo systemctl start docker
sudo systemctl enable docker
8、运行"Hello World"容器进行测试,确保docker正常工作(一般可以省略此步骤)
sudo docker run hello-world
9、常见错误处理
错误描述:执行docker images报错如下:permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json": dial unix /var/run/docker.sock: connect: permission denied
错误原因:docker进程使用Unix Socket而不是TCP端口,而默认情况下,Unix socket属于root用户,需要root权限才能访问
解决方法:docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令。处理命令如下:
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker images #测试docker命令是否可以使用sudo正常使用
参考博客: