Ces*_*ira 23 postgresql containers docker
我想有一种方法进入Postgresql容器并从中获取数据转储.
Ces*_*ira 27
从UNIX终端使用以下命令:
docker exec <container_name> pg_dump <schema_name> > backup
Run Code Online (Sandbox Code Playgroud)
以下命令将仅转储所有表中的插入:
docker exec <container_name> pg_dump --column-inserts --data-only <schema_name> > inserts.sql
Run Code Online (Sandbox Code Playgroud)
Jek*_*kis 15
我有一个名为postgres的容器,装有卷-v /backups:/backups
要备份gziped DB my_db,我使用:
docker exec postgres pg_dump -U postgres -F t my_db | gzip >/backups/my_db-$(date +%Y-%m-%d).tar.gz
Run Code Online (Sandbox Code Playgroud)
我现在有
user@my-server:/backups$ ls
my_db-2016-11-30.tar.gz
Run Code Online (Sandbox Code Playgroud)
尽管上面的挂载点解决方案看起来很有希望,但经过多次迭代后,以下是唯一对我有用的解决方案:
docker run -it -e PGPASSWORD=my_password postgres:alpine pg_dump -h hostname -U my_user my_db > backup.sql
Run Code Online (Sandbox Code Playgroud)
在我的情况下有什么独特之处:我在需要传入的数据库上有一个密码;需要传入标签(高山);最后,psql 工具的主机版本与 docker 版本不同。
这个使用container_name而不是database_scheme的,对我有用:
docker exec {container_name} pg_dump -U {user_name} > {backup_file_name}
Run Code Online (Sandbox Code Playgroud)
例如,对我来说,数据库名称、用户和密码应该在 docker-compose.yaml 中声明
我希望它可以帮助某人