Open5
Docker備忘録
docker-compose run
でポートマッピングを有効にする
docker-compose run
は、既に開いているポートとの衝突を避けるため、定義ファイルで指定したポートマッピングしない。
ポートマッピングを適用したい場合は --service-ports
をつけて実行する必要がある。
docker-compose run --service-ports
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のディスクを解放すればよい。
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
The repository ... is not signed
でエラーになる
docker build の apt-get update を実行時 「docker build 時に Error read-only file system でエラーになる」と同じ原因の事象。
ホスト側のストレージが不足している場合、docker system prune で不要なイメージ等を削除した後、以下の手順でWSL2のディスクを解放することで解消する。
docker-compose 実行時に定義されているコマンドではなくbashを起動したい
entrypoint
オプションで上書きする。
docker-compose run --entrypoint bash [SERVICE]