2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

初めてのDockerでぶち当たったエラー集

Posted at

自分が体験した Docker エラー集

はじめに

 どうも、最近Dockerを完全に理解したpizaです。
一通りの操作に慣れるまでに遭遇したエラーたちを備忘録としてまとめてみました。実は、発見したエラーの殆どがスペルミスだったのですが、、、
それはそうと、これらの発生要因について自分なりに読み解いてみました。どなたかのお役に立てれば幸いです。
 この記事では、Docker 24.0.6のバージョンを使用しています。また、一部エラー文は{}~~で置き換えを行っています。

エラー集

1. パーミッションエラー

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post ~~ : dial unix /var/run/docker.sock: connect: permission denied.

概要

初期動作確認で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. プロパティエラー

validating {docker-compose.yml}: Additional property {service} is not allowed

発生箇所

docker-compose.yml
service:
        app:
        db:

概要

プロパティの追加が何かしらの原因で出来なかった状態。キーが足りないとき、間違っているときに表示される。

解決方法

docker-compose.yml
services:
        app:
        db:

今回はスペルミスだったので「service」⇒「services」に修正して解決。

Composeのservicesはコンテナを定義する上で必要不可欠なものである。
参考 : https://github.com/compose-spec/compose-spec/blob/master/spec.md#services-top-level-element)

versionは下位互換性のため、Compose 仕様に定義されている。ほとんどは単なる情報(=コメント)として扱われる。

3. 構文エラー

line 24: mapping key "type" already defined at line 21
line 25: mapping key "source" already defined at line 22
line 26: mapping key "target" already defined at line 23

発生箇所

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

概要

typesourcevolumesの同列のキーとして認識されてしまっている。インデントが正しくないときにも表示される。

解決方法

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

--volume docker-practice-db-volume:/var/lib/mysqlはリスト要素の一つなので「-」をtypeの前に追加し、インデントを整えた。

最後に

Dockerの学習に特におすすめなのが、「実践 Docker - ソフトウェアエンジニアの「Docker よくわからない」を終わりにする本」 です。私がDockerに対して感じていた苦手意識を克服させてくれた本なので「Dockerが難しそうだから触れない、、、」と悩んでいる方に強くおすすめします!!是非、読んでみてください!!

それでは、お互い楽しい Docker Life を過ごしましょう!
最後までお読みいただき誠にありがとうございました。

参考

  1. パーミッションエラー
    https://docs.oracle.com/cd/E39368_01/E75728/html/section_rdz_hmw_2q.html
    https://qiita.com/ryoishizawa/items/1a459516b770548299fd

  2. プロパティエラー
    https://qiita.com/mida12251141/items/2e07cb332e436e56fcc9
    https://qiita.com/tomocrafter/items/ae1217e54e7a66bc6a87

  3. 構文エラー
    https://kyozon.net/list/what-is-yaml/

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?