こんにちは、命と書いてmikotoです。
今回のエントリーでは、Docker初心者やこれからまさにDockerを使おうと思っている方向けに、最初によく遭遇するエラー内容とその解決策についてまとめてみようと思います。
Dockerの公式サイトはこちらからどうぞ。メインロゴのクジラがかわいいですね。
Docker – Build, Ship, and Run Any App, Anywhere
ケース1:docker
コマンドが動かない
エラー
An error occurred trying to connect: Post https:///var/run/docker.sock/v1.17/containers/create: dial unix /var/run/docker.sock: no such file or directory
boot2docker
コマンドは通ったが、docker
コマンドを実行した際に上記エラーが(特に始めて使う場合に)発生することがあります。
上記エラーは、接続先のDockerホスト情報が設定できていない場合に発生します。
解決策
MacでDockerを利用するときの初期設定の「環境変数の設定」を参照し、環境変数によってDockerの環境情報を設定することで解決します。
ケース2:【Mac】Web/SSHサーバーを起動したけど、ホストOSから繋がらない
エラー
Dockerfile
にEXPOSE
を書いたdocker run
を-p
オプション付きで実行した
WebサーバーやSSHサーバーなどをDockerコンテナ内で立ち上げ、ホストOS(この場合はMac)から、上記によってポートフォワーディングを行い、アクセスしようとした際に、うまく接続できない場合があります。
原因
boot2docker
を利用している場合、ポートフォワーディングは下記の設定ではうまくいかないです。
【Dockerコンテナ】→【ホストOS】
MacではLXC(Linux Container)が利用できないため、代替手段としてVirtual Box上に仮想環境を立てています。
そのため、ポートフォワーディングは以下のように設定しなければいけません。
【Dockerコンテナ】→【Virtual Box】→【ホストOS】
解決策
こちらもMacでDockerを利用するときの初期設定の「ポートフォワーディング設定」を参照し、Vitrual Boxのポートフォワーディング設定を変更する必要があります。
ケース3:さっき起動したコンテナが起動しない
エラー
- さっき起動したコンテナが急に起動しなくなった
- ポートフォワーディングをしている
Dockerfile
にEXPOSE
を書いたdocker run
を-p
オプション付きで実行した
上記のケースの際に、下記のようなエラーが発生することがあります。
FATA[0000] Error response from daemon: Cannot start container XXX...X: Bind for 0.0.0.0:5022 failed: port is already allocated
原因
ポートフォワーディングする設定のコンテナが、まだ起動している時に、同じポートを利用するコンテナを新たに起動すると、ポートが既に埋まっているため起動することができません。
解決策
既に起動しているコンテナを停止するか、起動しようとしているコンテナがフォワーディングしようとしているポートを変更することで解決することができます。
起動済みのコンテナを停止する操作はDockerを利用していると往々にしてあることなので、エイリアスを作って設定しておくと良いです。エイリアスの設定方法はまた別途書きたいと思います。
ケース4:スペースがない
エラー
イメージを沢山作っているとその内遭遇するエラーです。エラー内容は下記。
write error: No space left on device
原因
イメージを作ったまま放置していたため、dockerの利用可能容量がいっぱいになってしまっていることが原因です。
boot2docker
の初期設定で利用していると、割とすぐにぶつかる問題なので、利用可能なスペースを拡張しておくと良いです。
解決策
- イメージを削除
- とりあえずは
docker images
で表示されたイメージの内、不要なものを全て削除すれば、動作するようになるはず docker rmi [CONTAINER_ID]
コマンドで、指定のイメージを削除することができます
- とりあえずは
- スペース拡張(Mac)
- 上記にも書きましたが、
boot2docker
のデフォルトスペースはかなり小さいので、まだの場合は拡張したほうが良いです。 - MacでDockerを利用するときの初期設定の「ホストサイズの設定 (オプション)」を参考に、スペースを拡張してください。
- 上記にも書きましたが、
最後に
以上、Dockerを使い始めるとよく起こるエラーをまとめてみました。参考になれば幸いです。