Open5

Docker備忘録

ichitadonichitadon

docker-compose run でポートマッピングを有効にする

docker-compose run は、既に開いているポートとの衝突を避けるため、定義ファイルで指定したポートマッピングしない。

ポートマッピングを適用したい場合は --service-ports をつけて実行する必要がある。

docker-compose run --service-ports

http://docs.docker.jp/v19.03/compose/reference/run.html#run

ichitadonichitadon

docker build 時に Error read-only file system でエラーになる

WSL2でDockerDesktopを使用している場合に発生しやすい事象。
以下のようなエラーでイメージのビルドが落ちたときは、WSL2のDocker領域のストレージ容量が足りていない可能性がある。

Error read-only file system : write /var/lib/docker/buildkit/metadata_v2.db

ホスト側のストレージが不足している場合、docker system prune で不要なイメージ等を削除した後、以下の手順でWSL2のディスクを解放すればよい。

https://zenn.dev/link/comments/b5176b023bb512

ichitadonichitadon

docker run 実行時に invalid reference format: repository name must be lowercase. でエラーになる

コマンドに変数を入れたとき、変数に空白が含まれるとdocker run実行時に発生する。

docker run -it -v $PWD:/app tagname bash

例えば、$PWD で参照しているパスに空白があった場合、以下のようなエラーが出力される。

docker: invalid reference format: repository name must be lowercase.
See 'docker run --help'.

このような場合には、以下のように空白が存在する変数にダブルクォーテーションをかければよい。

docker run -it -v "$PWD":/app tagname bash
ichitadonichitadon

docker build の apt-get update を実行時 The repository ... is not signed でエラーになる

「docker build 時に Error read-only file system でエラーになる」と同じ原因の事象。

https://zenn.dev/link/comments/46ef4e4b3ccf3d

ホスト側のストレージが不足している場合、docker system prune で不要なイメージ等を削除した後、以下の手順でWSL2のディスクを解放することで解消する。

https://zenn.dev/ichitadon/scraps/9d07e16c23838a#comment-b5176b023bb512

ichitadonichitadon

docker-compose 実行時に定義されているコマンドではなくbashを起動したい

entrypoint オプションで上書きする。

docker-compose run --entrypoint bash [SERVICE]