How to delete Postgres files in Docker container

I would like to delete my postgres volume and start over (learning the process). When I enter the postgres container using docker exec -it [container_id] sh I can see the postgres files like this: ls var/lib/postgresql/data/.

When I try to delete these files using rm -r var/lib/postgresql/ I get:

rm: can't remove 'var/lib/postgresql/data': Resource busy

If I stop this container, I will not be able to delete the volume. How can I delete it?

Fwiw my docker-compose looks as such:

services:
  db:
    container_name: postgres
    image: postgres:13-alpine
    volumes:
      - ./postgres:/var/lib/postgresql/data
    env_file:
      - .env

Edit:

The docker-compose is pulled from my GitHub. I am not sure where any of the files are on the server. NVM, found them. Thanks.


Solution 1:

You mounted ./postgres from your host system at ´/var/lib/postgresql/data` in your docker container:

volumes:
      - ./postgres:/var/lib/postgresql/data

So just navigate to ./postgres on your host system and delete the content.

You even can use Finder/Explorer to do this.
See also: https://docs.docker.com/storage/bind-mounts/

Solution 2:

The contents you can access from inside the container at /var/lib/postgresql/data, are the contents of the subdirectory postgres in the host machine, so you could add or remove files from the host machine