Docker Postgress清除所有数据

Phi*_*ide 8 docker docker-compose

我正在一个码头工人的容器内运行postgress.我正在尝试完全删除它并重新安装.

每次我开始它似乎是'重新启动'而不是制作一个新的实例.

当我重新启动新实例时,我收到这样的消息告诉我上次关闭以前的数据库时:

postgres            | LOG:  database system was shut down at 2017-04-25 18:28:02 UTC
Run Code Online (Sandbox Code Playgroud)

这些是我尝试完全删除数据库时所采取的步骤.

  docker kill $(docker ps -q) # stop all containers
  docker rm $(docker ps -a -q) # remove all containers 
  docker rmi $(docker images -q) # remove all images
  docker network prune # remove all networks
  docker volume prune # remove all volumes 
Run Code Online (Sandbox Code Playgroud)

然而,我总是得到指示前一个数据库何时关闭的日志.如何完全删除数据库的所有痕迹?

Pie*_*ter 39

对于docker-compose正确的方法来删除卷会docker-compose down --volumesdocker-compose down --rmi all --volumes

有关更多信息,请参阅https://docs.docker.com/compose/reference/down/


cre*_*ack 15

你可以试试:

docker volume rm $(docker volume ls -q)
Run Code Online (Sandbox Code Playgroud)

否则,正确的方法是:

docker rm -f -v postgres_container_name
Run Code Online (Sandbox Code Playgroud)

但是,我不认为卷是问题.当您执行操作时docker run --rm -it postgres,入口点会加载某些配置并重新启动数据库,因此应该会看到该消息.


Phi*_*ide 8

结果是 docker compose 在启动时挂载了文件夹,这些文件夹的指定方式docker-compose.yml如下:

volumes:
  - ./code:/etc/puppetlabs/code/
  - ./puppet/ssl:/etc/puppetlabs/puppet/ssl/
  - ./puppet/serverdata:/opt/puppetlabs/server/data/puppetserver/
Run Code Online (Sandbox Code Playgroud)

文件夹在使用时更新。通过删除它们,我能够解决我的问题。

  • 要完成答案,删除卷的正确方法是使用: docker volume prune (2认同)