Use External Drive Postgresql Docker Wsl2
20 Sep 2023 - Alejandro Piña
Using a docker postgresql image with external drive in WSL2.
Prerequisites
- Docker PostreSQL container
- WSL2 installed
- External drive connected
Make sure that your external drive has a format ext4 and mounted in WSL2 if you external drive has other format follow the next steps to create a new partition to be used as ext4
Create a partition file
The partition file is going to make with a block size of 4 KiB multiplied by count parameters in the following example is the equivalent to 1 Terabyte
dd if=/dev/zero of=/mnt/d/ext4_01.img bs=4K count=268435456 status=progress
Format the file
mkfs.ext4 /mnt/d/ext4_01.img
Create a mount point in WSL
sudo mkdir /mnt/ext4_ext
Mount the new partition
sudo mount -o loop /mnt/d/ext4_01.img /mnt/ext4_ext
Give permission to your user
sudo chown $USER:$USER /mnt/ext4_ext
Create a folder to save your databases
mkdir /mnt/ext4_ext/postgres_data
Create and run your postgres image using your new partition
docker run -d \
--name db-postgres-data \
-e POSTGRES_PASSWORD=mypassword \
-v /mnt/ext4_ext/postgres_data:/var/lib/postgresql/data \
-p 5432:5432 \
postgres