[TOC]
# Ubuntu 安装Docker步骤
## 1. 进入Docker官网,进入开发者页面
- 官网地址:[https://docker.com/](https://docker.com/)
![](https://img.kancloud.cn/c4/81/c4818641703e6e2c5f05041d8a7225d1_2884x1136.png)
- 进入开发者
![](https://img.kancloud.cn/f6/03/f603e1b65f10e97493a96c4f74a8648e_1722x724.png)
- 选择引擎安装
![](https://img.kancloud.cn/d4/19/d419bad2dc1a57d8bc86e628295d8543_1538x822.png)
- 在里面可以看到很多的版本,这里我们只以Ubuntu为例进行安装,中途会遇到很多报错问题,也会一起解决。
![](https://img.kancloud.cn/cb/b2/cbb24677b9c6c3f50deee06817e1c50e_1730x1012.png)
## 2. 选择适合自己的安装方式
<span style="color: red;">判断自己的版本是不是可以安装</span>
![](https://img.kancloud.cn/dd/89/dd8901ab3a6c2a1ab281c5167ff10d8b_1530x504.png)
> 上面的大体意思是,这些版本的 Ubuntu 支持 Docker Engine 的安装和运行。确保您使用的系统是 64 位版本,才能顺利安装 Docker。
## 3. 安装 Docker
Ubuntu 的 Docker 安装分为3步:
### 1.更新系统包,安装插件,创建秘钥及目录
```sh
更新系统包索引,以便获取最新的软件包列表;
安装 ca-certificates 和 curl;
创建一个名为 /etc/apt/keyrings 的目录,并设置该目录的权限为 0755(即所有者可读、写、执行,组和其他用户可读、执行);
使用 curl 从 Docker 官方站点下载 GPG 密钥,并将其保存到 /etc/apt/keyrings/docker.asc 路径下;
为 /etc/apt/keyrings/docker.asc 文件设置权限,允许所有用户读取该文件(a+r 表示所有用户读取权限),这是为了让 apt 能够读取并验证 Docker GPG 密钥.
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
```
```sh
添加 Docker 仓库到 apt 源
更新 apt 包索引
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
使用阿里云库安装(推荐):
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
```
### 2.安装 Docker 软件包
```sh
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
**这里可能会安装不上,主要是因为apt地址不稳定,解决的办法是:”切换成阿里云地址,然后多尝试安装。还是不行就先看一下异常2,配置 Docker 使用的镜像源,再尝试。“**
测试 Docker 是否安装成功
```sh
docker -v
```
如果打印出 Docker 的版本参数,表示你的Docker已经运行成功了,恭喜喔;
<span style="color:red">如果没有Docker命令,那就是安装失败,可以参考页尾的“异常处理2”重新安装。</span>
### 3.设置开机启动
```sh
sudo systemctl start docker
```
查看开机启动是否设置成功
```
systemctl status docker
```
![](https://img.kancloud.cn/b8/38/b83851ead973be81171f47ccc2c3a906_1540x392.png)
`Active: active (running)` 表示 Docker 服务正在运行。
`Loaded: loaded (/lib/systemd/system/docker.service; enabled)` 表示 Docker 服务已经配置为开机启动(`enabled`)。
### 4.通过运行 hello-world 镜像验证安装是否成功
```sh
sudo docker run hello-world
```
<span style="color:red">安装不成功换一下自己的Docker库地址(多试几次,有50秒的启动时间),如下:</span>
```
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["自己的镜像服务地址"],
"max-concurrent-downloads": 5,
"log-level": "debug"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
```
如图为成功:
![](https://img.kancloud.cn/11/15/1115bbd5e4b0132c5c006690c8b7d17f_1324x440.png)
到此安装结束。
## 常见异常处理
### 1. 执行`hello-world`文件的时候报错,主要是权限问题
如:出现 `permission denied while trying to connect to the Docker daemon socket` 错误通常是因为当前用户没有足够的权限访问 Docker 守护进程。
解决办法:
```
sudo usermod -aG docker $USER
sudo shutdown -r now
```
* `-aG`:将用户追加到指定的组中。
* `$USER`:这是当前的用户名。
* `shutdown -r now` 重启服务器
### 2. 由于国内要求,Docker服务已经禁止,需呀配置加速(这里由于发布要求已经封禁,需要的了解的可以联系我)
<span style="color:red">镜像地址进入自己的”render“查看,地址:https://dashboard.render.com </span>
```
创建 Docker 配置目录
创建并编辑 Docker 配置文件
重新加载 systemd 配置
重启 Docker 服务
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["自己的镜像服务器地址"],
"max-concurrent-downloads": 5,
"log-level": "debug"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
```
再次测试“hello-world”
```
sudo docker run hello-world
```
测试拉取操作
```
docker pull xxxxx.xxxx.xxxx/okteto/docker-proxy:latest
```
基本解决以上问题就可以实现安装,还有问题请与作者联系。
### 3. 将 Docker 的安装源更换为阿里云的 Docker 镜像源,替换官方的镜像源。
补充:查看Docker 的 APT 源(Docker 的安装源)
<span style="color:red">注意:**APT 源** 和 **Docker 的安装源** 是两个不同的概念,但它们之间有一定的关系。
APT(**Advanced Package Tool**)源是一个软件仓库,它用于存储 Debian 和 Ubuntu 系统中的软件包(.deb 文件)。APT 是一个包管理工具,它通过从这些源获取和安装软件包来管理系统中的软件。
**Docker 的安装源**是指提供 Docker 安装和更新的仓库,它也是通过 APT 管理的,但是它是一个专门用于安装 Docker 相关软件包的源。你可以将 Docker 的安装源视为一个 **专用的 APT 仓库**,它提供的就是 Docker 相关的包(例如 `docker-ce`、`docker-ce-cli`、`containerd` 等)。
</span>
```
cat /etc/apt/sources.list.d/docker.list
```
(1)如果你已经按照官方源配置了 Docker 的安装源,可以先删除旧的源配置,防止冲突:
```
sudo rm /etc/apt/sources.list.d/docker.list
```
(2)将阿里云的 Docker 镜像源添加到系统的 APT 源中
```
echo \
"deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```
(3)为了确保 APT 源的安全性,你需要导入阿里云的 GPG 密钥
```
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
```
设置文件权限:
```
sudo chmod a+r /etc/apt/keyrings/docker.asc
```
(4)更新软件包列表
```
sudo apt-get update
```
![](https://img.kancloud.cn/9f/63/9f63a7ac998d33e7596e0facbaeb362e_2240x634.png)
(5)查看 Docker 的源配置文件 `/etc/apt/sources.list.d/docker.list` 是否已经正确指向阿里云的镜像源
```
cat /etc/apt/sources.list.d/docker.list
```
![](https://img.kancloud.cn/63/f2/63f271e5ad8d13cb682855e57003f603_2018x140.png)
(6)验证 GPG 密钥是否导入成功
```
sudo apt-key list
```
这里只有Ubuntu密钥,没有阿里云的,重装密钥试过还是一样,但系统正常,所以就暂时不管了
![](https://img.kancloud.cn/69/24/69248909ac1e28b126b699fcd49cdd2d_1924x664.png)