|
@@ -0,0 +1,95 @@
|
|
|
+# docker安装踩坑
|
|
|
+## 根据官网安装`docker`
|
|
|
+### 1. 移除可能安装的旧版本`docker`相关程序
|
|
|
+### 2. 添加`docker`仓库
|
|
|
+
|
|
|
+## 在`centerOS`上安装实战
|
|
|
+> 一次具体的问题排查记录
|
|
|
+#### 排查启动失败原因
|
|
|
+1. 查看服务状态
|
|
|
+```shell
|
|
|
+sudo systemctl status docker
|
|
|
+```
|
|
|
+2. 发现关键字`Unit docker.service entered failed state.`
|
|
|
+3. 搜索得到提示,与防火墙有冲突
|
|
|
+- 找到对应的[解决方案](https://mhsj.net/240.html) , 参考该文章的第三条,修改`docker`的配置文件`/etc/docker/daemon.json`
|
|
|
+```shell
|
|
|
+sudo vim /etc/docker/daemon.json
|
|
|
+```
|
|
|
+- 输入如下内容
|
|
|
+```json
|
|
|
+{
|
|
|
+ "iptables": false
|
|
|
+}
|
|
|
+```
|
|
|
+- 启动发现还是有问题,继续排查
|
|
|
+- 还原配置文件
|
|
|
+4. 使用`dockerd`来启动`docker`服务
|
|
|
+- 命令
|
|
|
+```shell
|
|
|
+sudo dockerd
|
|
|
+```
|
|
|
+- 发现错误提示 `Failed to built-in GetDriver graph btrfs /var/lib/docker`
|
|
|
+- 找到对应[解决方案](https://blog.csdn.net/qq_44930737/article/details/125524492)
|
|
|
+- 查找系统文件系统类型
|
|
|
+```shell
|
|
|
+sudo parted -l
|
|
|
+```
|
|
|
+- 发现文件类型和该解决方案的文件类型一致`vfs`
|
|
|
+- 修改`docker`配置文件`/etc/docker/daemon.json`
|
|
|
+```json
|
|
|
+{
|
|
|
+ "storage-driver": "vfs"
|
|
|
+}
|
|
|
+```
|
|
|
+- 继续尝试启动,出现新问题 `Failed to program NAT chain: INVALID_ZONE: docker`
|
|
|
+> `failed to start daemon: Error initializing network controller: Error creating default "bridge" network: Failed to program NAT chain: INVALID_ZONE: docker`
|
|
|
+- `network`看起来是网络相关的错误,想到之前找到的防火墙冲突解决方案,尝试修改`docker`配置文件
|
|
|
+- 添加`"iptables": false`
|
|
|
+```shell
|
|
|
+"iptables": false
|
|
|
+```
|
|
|
+- 最终修改后的配置文件
|
|
|
+```json
|
|
|
+{
|
|
|
+ "storage-driver": "vfs",
|
|
|
+ "iptables": false
|
|
|
+}
|
|
|
+```
|
|
|
+- 尝试启动`docker`服务
|
|
|
+```shell
|
|
|
+sudo systemctl start docker
|
|
|
+```
|
|
|
+- 没有让看日志,直接查看服务状态(可能启动成功了)
|
|
|
+```shell
|
|
|
+sudo systemctl status docker
|
|
|
+```
|
|
|
+- 服务成功处于运行中,开始尝试使用`docker`命令
|
|
|
+```shell
|
|
|
+sudo docker ps -a
|
|
|
+```
|
|
|
+5. 测试`docker`命令
|
|
|
+> 查看`docker`是否能够正常启动
|
|
|
+- 查看`docker`版本
|
|
|
+```shell
|
|
|
+sudo docker version
|
|
|
+```
|
|
|
+- 发现异常`Cannot connect to the Docker daemon at unix`
|
|
|
+> Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
|
|
|
+- 服务已经启动,但是`docker`命令无法连接到`docker`服务
|
|
|
+- 尝试重启`docker`服务,
|
|
|
+```shell
|
|
|
+sudo systemctl restart docker
|
|
|
+```
|
|
|
+通过`tab`补全命令发现还有一个`docker.socket`服务,顺便也重启一下
|
|
|
+```shell
|
|
|
+sudo systemctl restart docker.socket
|
|
|
+```
|
|
|
+- 重启后再次查看`docker`版本
|
|
|
+```shell
|
|
|
+sudo docker version
|
|
|
+```
|
|
|
+- 没有异常输出,测试使用镜像
|
|
|
+
|
|
|
+
|
|
|
+
|