Docker で、Error load build context no space left on device というエラーの解決方法
こんにちは、AIQ株式会社のフロントエンドエンジニアのまさぴょんです!
今回は、Docker で、Error load build context
と failed to solve: failed to create xxxxxxx: open /var/lib/docker/xxxxxxx : no space left on device
というエラーの解決方法について、解説していきます。
Errorの発生状況
いつものように開発Projectをdocker compose up --build
で、ビルドした際に、
Error load build context
と failed to solve: failed to create xxxxxxx: open /var/lib/docker/xxxxxxx : no space left on device
というエラーが発生しました。。。
原因: Dockerが、メモリを使いすぎている
先述の、Error load build context
と failed to solve: failed to create xxxxxxx: open /var/lib/docker/xxxxxxx : no space left on device
というエラーの原因は、Dockerが、メモリを使いすぎていることにあります。
no space left on device (デバイスにスペースが残っていない)って、言っていますね。
試しに、docker system df
コマンドを使用してみてください。
docker system df
実行すると次のように、Dockerのストレージ使用状況が、表示されるはずです。
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 44 20 30.54GB 21.75GB (71%)
Containers 24 4 16.22MB 16.22MB (99%)
Local Volumes 29 7 2.811GB 1.527GB (54%)
Build Cache 252 0 13.57GB 13.57GB
ImagesのSIZEが30.54GBや、Build Cacheが13.57GBなど結構な使用率であることがわかります。
解決方法: 不要なDockerのImageやContainer,Cacheなどを削除する
Dockerが、メモリを使いすぎていることが、今回のエラーの原因なので、不要な Docker Image や Container, Build Cache などを削除して解決していきます。
私は以前に、Dockerを軽量化するために使えるdocker prune コマンドなどを紹介する記事を書いているので、ここから一部、引用していきます。
不要なDockerイメージの自動削除
docker image prune
コマンドを使用することで、使用していないDocker Imageを自動で、一括で削除することができます。
停止しているコンテナはメモリやリソースを占有するため、定期的に削除するクセを持っておいた方がいいです。
タグを持たず、他のコンテナからも参照されないイメージが、使用していないイメージとして判断されます。
docker image prune
不要なDockerコンテナの自動削除
docker container prune
コマンドを使用することで、停止しているDocker Containerを一括で削除することができます。
docker container prune
Docker build cacheの削除
次のコマンドで、Docker での Build時に使用している Cacheを Clearすることができます。
docker builder prune
不要なDocker Image, Container, Volume, Network の一括削除
docker system prune
コマンドを使用することで、使用されていないDocker Image, Container, Networkなどを一括で削除することができます。
docker system prune
デフォルトでは、Volume は削除されないようなので、VolumeもClearしたい場合は、オプションを付与する必要があります。
docker system prune --volumes
[参考・引用]
- 私は以前に、個人Blogの方で、書いた記事です🐱
- 上記では、紹介していない、
docker volume prune
コマンドや、docker network prune
コマンドについても紹介しています。
注意事項
この記事は、AIQ 株式会社の社員による個人の見解であり、所属する組織の公式見解ではありません。
求む、冒険者!
AIQ株式会社では、一緒に働いてくれるエンジニアを絶賛、募集しております🐱🐹✨
エンジニア視点での我が社のおすすめポイント
- フルリモート・フルフレックスの働きやすい環境!
- 前の会社でアサインしてた現場は、フル出社だったので、ありがたすぎる。。。
- もうフル出社には、戻れなくなります!
- 経験豊富なエンジニアの先輩方
- 私は、3年目の駆け出しエンジニアなので、これが、かなりありがたいです!
- 自社開発とR&D(受託開発)を両方している会社なので、経験できる技術が多い。
- 自社のProduct開発と、他社からの受託案件で、いろいろな技術を学ぶことができます。
- AI関連の最新の技術に触れられるチャンスが多い。
- 自社で特許を持つほど、AI技術に強い会社で、プロファイリングを得意とした技術体系があります。
- ChatGPTを自社アプリに搭載など、AIトレンドも、もちろん追っており、最新の技術に触れられるチャンスが多いです。
- たまに、札幌ラボ(東京から札幌) or 東京オフィス(札幌から東京)に出張で行ける!
- 東京と、札幌に2拠点ある会社なので、会合などで集まる際に、出張で行けます。
採用技術 (一部抜粋)
- FrontEnd: TypeScript, JavaScript, React.js, Vue.js, Next.js, Nuxt.js など
- BackEnd: Node.js, Express,Python など
- その他技術: Docker, AWS, Git, GitHub など
エントリー方法
- 私達と東京か札幌で一緒に働ける仲間を募集しています。
詳しくは、Wantedly (https://www.wantedly.com/companies/aiqlab)を見てみてください。
Webエンジニア向け説明
データサイエンティスト向け説明
人事に直通(?)・ご紹介Plan(リファラル採用)
私経由で、ご紹介もできますので、興味のある方や気軽にどんな会社なのか知りたい方は、X(旧:Twitter)にて、DMを送ってくれても大丈夫です。
AIQ 株式会社 に所属するエンジニアが技術情報をお届けします。 ※ AIQ 株式会社 社員による個人の見解であり、所属する組織の公式見解ではありません。 Wantedly: wantedly.com/companies/aiqlab
Discussion