tool
Docker
アプリケーションをコンテナ化して配布・実行するためのプラットフォーム。Dockerfile のビルド・イメージ・単一コンテナの実行が主題で、複数コンテナのまとめ起動やサービス間連携は Docker Compose が担当する。
問題一覧(15)
Docker build でキャッシュが効いて変更が反映されない
Docker build はレイヤーごとにキャッシュを再利用するため、COPY 元のファイル変更を検知させないと古いレイヤーが使われる。--no-cache で全レイヤー無効化、--build-arg にビルド日時を渡す、COPY 順を依存とソースで分ける、で対処する。
更新: 2026-07-31、タグ: build、cache、dockerfile
Docker build できない(Cannot connect to the Docker daemon)
Docker daemon が起動していない、または現ユーザーが docker グループに属していないと build/run の全てが失敗する。OS別に確認手順が異なる。
更新: 2026-08-06、タグ: daemon、build、permission
docker build で「no space left on device」が出てビルドできない
BuildKit のキャッシュ層や停止中コンテナ、dangling ボリュームが溜まるとビルドストレージが枯渇する。docker system df で内訳を見て docker builder prune / docker system prune で掃除、Docker Desktop は仮想ディスク上限を引き上げる。
更新: 2026-05-13、タグ: build、disk、prune
docker run したコンテナがすぐ終了して起動し続けられない
コンテナはメインプロセス(PID 1)が終了すると停止します。常駐プロセスが無い、デタッチで対話シェルを起動した、CMD が即終了する、のいずれかが原因です。docker logs と docker ps -a で終了コードを確認します。
更新: 2026-08-10、タグ: container、exit、run
Dockerfile の COPY でファイルが見つからずビルドできない
COPY のソースは Dockerfile があるディレクトリではなく build context 基準で解決される。.dockerignore で除外されている、または build context 外を指していないか確認する。
更新: 2026-08-07、タグ: dockerfile、copy、build-context
Docker の .dockerignore が効かずファイルを除外できない
.dockerignore はビルドコンテキストのルート直下に置き、glob 構文と否定 (!) の順序を正しく書かないと無視されない。ファイル名・配置・BuildKit の仕様差で詰まる。
更新: 2026-08-11、タグ: dockerignore、build、context
docker exec で「executable file not found in $PATH」が出て実行できない
指定コマンドがコンテナ内に無い/PATH に無いと出る。slim 系に bash が無いのが典型。sh を使うか、必要なコマンドをイメージへ入れる。
更新: 2026-08-06、タグ: exec、executable-not-found、path
Docker の HEALTHCHECK がいつも unhealthy になる
HEALTHCHECK は CMD が exit 0 で healthy、それ以外で unhealthy。コンテナに curl 等が無い、起動待ち時間不足、shell / exec 形式の書き分けが主因。docker inspect の Health.Log で実エラーを確認する。
更新: 2026-08-06、タグ: healthcheck、dockerfile、container
Docker rmi で image is being used by container エラーを解決できない
docker rmi がイメージ削除で conflict: unable to delete を返すのは、停止中も含む既存コンテナや別タグから image が参照されているため。コンテナを先に docker rm するか、docker rmi -f で強制削除する。
更新: 2026-06-01、タグ: rmi、image、container
docker login の認証情報が保存できない(毎回ログインを求められる)
~/.docker/config.json の credsStore が OS のキーチェーンに対応していないと認証情報が保存されない。OS ごとの credential helper をインストールし、credsStore を明示する。
更新: 2026-06-05、タグ: login、credentials、credsStore
Docker で「platform (linux/amd64) does not match」警告が出てイメージを使えない
Apple Silicon (arm64) ホストで amd64 のみのイメージを引くと platform mismatch 警告と低速エミュレーションが発生する。--platform 指定、buildx のマルチアーキビルド、Rosetta 有効化の 3 択で対処する。
更新: 2026-05-15、タグ: platform、arm64、m1
Docker で「Bind for 0.0.0.0:8080 failed: port is already allocated」が解消できない
docker run の -p で指定したホストポートを、既存のコンテナや別プロセスが使っているのが原因。使用中のポートを特定して止めるか、別のホストポートに割り当て直す。
更新: 2026-06-15、タグ: port、run、bind
Docker pull が toomanyrequests で失敗する(Docker Hub レート制限)
Docker Hub は匿名 IP / 無料アカウントで pull 回数に上限がある。docker login で認証 pull に切り替える、ミラーや別レジストリを使う、CI のレイヤキャッシュを効かせる、の 3 系統で逃がす。
更新: 2026-06-29、タグ: pull、registry、rate-limit
Docker で「permission denied while trying to connect to the Docker daemon socket」が実行できない
docker コマンドを sudo なしで実行したとき、ユーザーが docker グループに属していないとソケットにアクセスできず起きる。グループに追加すれば解決する。
更新: 2026-07-30、タグ: permission、socket、docker-group
Docker のボリュームマウントで permission denied になり書き込めない
bind mount したホストディレクトリに対しコンテナ側の uid/gid が一致しないと書き込めない。--user で uid を揃える、:Z で SELinux ラベルを付ける、named volume に切り替える、の 3 系統で対処する。
更新: 2026-07-29、タグ: volume、permission、bind-mount