【トラブル】【AWS】Amazon ECR でのトラブルシューティング

■ はじめに

https://dk521123.hatenablog.com/entry/2020/05/22/165711
https://dk521123.hatenablog.com/entry/2020/05/26/142645
https://dk521123.hatenablog.com/entry/2020/05/23/080655

等で、起こったトラブルシューティングを纏める。

目次

【1】エラー「BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE」が表示される
【2】エラー「Got permission denied while trying to connect to the Docker daemon socket」が発生
【3】エラー「Cannot connect to the Docker daemon at unix:///var/run/docker.sock.」が発生

【1】エラー「BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE」が表示される

https://dk521123.hatenablog.com/entry/2020/05/23/080655

で発生した問題。

エラー内容

BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE:
Unable to pull customer's container image.
CannotPullContainerError:
Error response from daemon:
pull access denied for xxxx.xxx.ecr.us-west-2.amazonaws.com/hello-world-ecr.
repository does not exist or may require 'docker-login':
denied: User:arn:xxxxx

原因
https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/troubleshooting.html#troubleshooting-unable-to-pull-image

より抜粋
~~~~
AWS CodeBuild には、Amazon Elastic Container Registry (Amazon ECR) から
ビルドイメージを取得するアクセス許可がありません。
~~~~

解決案
https://dk521123.hatenablog.com/entry/2020/05/23/080655

の手順「【1】ECRの画面からCodeBuildのロールに対して、許可を行う」
を行う。

【2】 エラー「Got permission denied while trying to connect to the Docker daemon socket」が発生

https://dk521123.hatenablog.com/entry/2020/05/22/165711
https://dk521123.hatenablog.com/entry/2020/05/26/142645

で発生した問題。
Amazon ECR レジストリに対してログイン時に
以下のエラー内容が発生した

エラー内容

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:
Post http://%2Fvar%2Frun%2Fdocker.sock/vX.XX/images/create?fromImage=python&tag=latest:
dial unix /var/run/docker.sock: connect: permission denied

原因

sudo なしの設定を行っていなかったため

解決案
https://dk521123.hatenablog.com/entry/2020/05/22/165711

の「2-4)docker を sudo なしで実行できるように設定する」
を行う

参考文献
https://tech.librastudio.co.jp/entry/index.php/2018/07/14/post-1924/

【3】エラー「Cannot connect to the Docker daemon at unix:///var/run/docker.sock.」が発生

 WindowsのWSL上のUbuntuにおいて
Dockerビルド「docker build -t your-ecr-repository .」した際に
以下の「エラー内容」が表示された。
なお、Dockerは、apt install でインストールしてある状態。

エラー内容

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the daemon running?

原因

Dockerデーモンが動いていないため。

なお、以下のサイトがめちゃめちゃ助かった。

http://var.blog.jp/archives/85880603.html

原因の突き止め方

$ sudo service docker start
docker: unrecognized service # サービスとして docker が認識されていない

$ sudo service --status-all
 [ - ]  apparmor
 [ ? ]  apport
 # ... Dockerがいないこと確認 => サービスリストにも登録されていないことが分かった

解決案

[1] Docker の再インストールする。
 => インストール方法は、以下のサイトを参照。

https://dk521123.hatenablog.com/entry/2018/04/10/234030

[2] インストール後に、以下の関連記事を参考に

https://dk521123.hatenablog.com/entry/2016/07/26/223003

# サービス起動
sudo service docker start
# サービス状態確認
sudo service docker status
# 念のため、サービスリストに登録されているか確認する
sudo service --status-all
#  [ + ]  docker だったらOK!

関連記事

Amazon ECR ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/05/22/165711
Amazon ECR ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/05/26/142645
CodeBuild で カスタムDockerイメージを使ってビルドする
https://dk521123.hatenablog.com/entry/2020/05/23/080655
Docker ~ Linux / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2018/04/10/234030
サービス管理 ~ service・chkconfig / systemd ~
https://dk521123.hatenablog.com/entry/2016/07/26/223003