Dockerをinstallする際にPackage docker-ce is not available, but is referred to by another packageと表示されてインストールできない。

・apt-get installでdockerをインストールできない。
・Package docker-ce is not available, but is referred to by another packageが発生。
・apt-get installを深掘りしたい。
apt-get installでdockerをインストールしようとした際に、下記のようなエラーが発生しました。
Package docker-ce is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source

この原因と対処法を紹介します。
記事の目次
原因 apt-getのコマンドが間違っており、サードパーティのリポジトリ情報に正しく記入されなかった。
apt-getはサードパーティのリポジトリからパッケージをインストールする際は「/etc/apt/sources.list.d/」のディレクトリ以下の~~.listファイルにリポジトリのURLが記載されている必要があります。
/etc/apt/sources.list.d/:サードパーティのリポジトリ情報
/etc/apt/sources.list:ubuntu公式のリポジトリ情報
今回の場合、Dockerダウンロードサイトをaptリポジトリに追加する下記コマンドでミスがあったため、
~~.listファイルに誤ったリポジトリのURLが記載されてしまったため、エラーが発生してしまったようですね。

そもそもリポジトリがなぜ必要?
aptを使ってgitやら色々なものをインストールしていると思いますが、なぜできるのかというと
ダウンロード先のURLが記載してあるため、aptはどこからインストールしてくればわかる訳です。

gitの場合はubuntuが用意した/etc/apt/sources.listに記載してあったのでインストールできましたが、
dockerはどうすれば良いでしょうか。
dockerはetc/apt/sources.listに記載していないため、/etc/apt/sources.list.d/直下に〇〇.listというファイルを置いて、dockerのリポジトリを教えてあげないといけない訳です。
※etc/apt/sources.listに記載していないのをサードパーティと呼ぶのですが、dockerはサードパーティです。

対処法 /etc/apt/sources.list.d/以下のリストファイルに正しいリポジトリ情報を記入する。
まず、EC2にssh接続して、サードパーティのリポジトリ情報が格納されている/etc/apt/sources.list.d/直下のdocker.listを見てみます。

内容を見てみると、arch=amb64の記載誤り(正しくはamd64)であることがわかりました。
vimで開いて、該当箇所を直接修正すれば解消しました。
dockerに限らずサードパーティのインストールで詰まったら
上記2つのファイルをぜひ確認してみてください。
- タグ:
- docker