My case the reason is a corrupted SSD. When you see the error, check dmesg. Mine is brutal:
[ 5395.061163] blk_update_request: I/O error, dev sdb, sector 18906376 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 5395.061166] Buffer I/O error on dev sdb2, logical block 2363041, async page read
[ 5395.061310] Aborting journal on device sdb2-8.
[ 5395.061315] EXT4-fs error (device sdb2) in ext4_reserve_inode_write:6000: Journal has aborted
[ 5395.065827] EXT4-fs error (device sdb2): ext4_journal_check_start:61: Detected aborted journal
[ 5395.065829] EXT4-fs (sdb2): Remounting filesystem read-only
[ 5395.067419] EXT4-fs error (device sdb2): ext4_journal_check_start:61: Detected aborted journal
[ 5395.067421] EXT4-fs error (device sdb2): mpage_map_and_submit_extent:2619: comm postgres: Failed to mark inode 2385447 dirty
[ 5395.067422] EXT4-fs (sdb2): ext4_writepages: jbd2_start: 9223372036854775803 pages, ino 14362621; err -30
[ 5395.202060] EXT4-fs error (device sdb2): ext4_journal_check_start:61: Detected aborted journal
docker infoand also check if your drive C: has enough free space (20+ GB). Docker is not complicated. Windows is complicating it.