首次遇到的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进行功能验证。
2. 属性错误
验证 {docker-compose.yml}:不允许使用额外属性 {service}
发生的地方
service:
app:
db:
简要概述
由于某种原因,无法添加属性的状态。当缺少关键字或者存在错误时会显示此信息。
这个问题的解决办法
services:
app:
db:
这次是拼写错误,所以将”service”改为”services”进行修正,问题得到解决。
参考:https://github.com/compose-spec/compose-spec/blob/master/spec.md#services-top-level-element
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生活吧!非常感谢您一直阅读到最后。
请参考
-
- 权限错误
-
- https://docs.oracle.com/cd/E39368_01/E75728/html/section_rdz_hmw_2q.html
-
- 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/