首次遇到的Docker错误收集

我经历的 Docker 错误集合

首先

非常感谢,最近完全理解了Docker的piza在此。我将遇到的一些错误整理成备忘录,直到熟悉一系列的操作。事实上,我发现大部分错误都是拼写错误…

话题扯远了,我为这些错误的发生原因做了自己的解读。如果对某人有帮助的话,我将不胜荣幸。

在本文中,我使用的是Docker 24.0.6版本。此外,部分错误文本被替换为{}或~~。

错误收集

1. 权限错误

在尝试连接到 Docker 守护进程套接字 unix:///var/run/docker.sock 时,权限被拒绝:发出请求错误:拨号 unix /var/run/docker.sock 失败:连接权限被拒绝。

总结

当尝试使用sudo运行Docker进行初始操作确认时,出现了未授予权限来执行Docker的错误提示。

解決辦法

$ sudo groupadd docker
$ sudo usermod -aG docker $USER
$ newgrp docker

$ docker run hello-world

尽管可能与原本的解决方法不同,但我给予了用户Docker权限。
首先,创建Docker用户组并将用户加入Docker组。然后,使用newgrp命令来应用更改。最后,通过docker run hello-world进行功能验证。

使用 “sudo service docker restart” 重新启动并没有反映出来。

2. 属性错误

验证 {docker-compose.yml}:不允许使用额外属性 {service}

发生的地方

service:
        app:
        db:

简要概述

由于某种原因,无法添加属性的状态。当缺少关键字或者存在错误时会显示此信息。

这个问题的解决办法

services:
        app:
        db:

这次是拼写错误,所以将”service”改为”services”进行修正,问题得到解决。

Compose的services在定义容器时是必需的。
参考:https://github.com/compose-spec/compose-spec/blob/master/spec.md#services-top-level-element
版本是为了向下兼容性而定义在Compose规范中的。大部分只被视为纯粹的信息(=注释)。

3. 语法错误

第24行:映射键“类型”在第21行已经定义。
第25行:映射键“来源”在第22行已经定义。
第26行:映射键“目标”在第23行已经定义。

发生地点

volumes:
    type: bind
    source: ./docker/db/init.sql
    target: /docker-entrypoint-initdb.d/init.sql

概述

type和source被错误地识别为volumes的同一级键。即使缩进不正确也会显示出来。

解决方案 ‘àn)

volumes:
    - type: bind
      source: ./docker/db/init.sql
      target: /docker-entrypoint-initdb.d/init.sql

— 将docker-practice-db-volume:/var/lib/mysql作为列表元素之一,需要在type前面添加“-”并整理缩进。

最后

对于学习Docker而言,特别推荐的是《实战Docker – 让软件工程师的“Docker不懂”变消失的书》。这本书帮我克服了对Docker的不熟悉感,所以我非常强烈地推荐给那些担心Docker很难但又想学习的人!请一定要阅读一下!

就让我们一起享受愉快的Docker生活吧!非常感谢您一直阅读到最后。

请参考

    1. 权限错误

 

    1. https://docs.oracle.com/cd/E39368_01/E75728/html/section_rdz_hmw_2q.html

 

    1. https://qiita.com/ryoishizawa/items/1a459516b770548299fd

属性错误
https://qiita.com/mida12251141/items/2e07cb332e436e56fcc9
https://qiita.com/tomocrafter/items/ae1217e54e7a66bc6a87

语法错误
https://kyozon.net/list/what-is-yaml/

bannerAds