【发布时间】:2018-10-03 10:41:25
【问题描述】:
我正在尝试通过 kubectl 在 Docker 容器中运行 pg_dump 并将输出保存到我的本地计算机。
这是我目前所拥有的:
kubectl exec -it MY_POD_NAME -- pg_dump -h DB_HOST -U USER_NAME SCHEMA_NAME > backup.sql
但是,这只是目前挂起。我相当肯定这是因为-- 忽略了>
kubectl exec -it MY_POD_NAME -- pg_dump -h DB_HOST -U USER_NAME SCHEMA_NAME 按预期输出到控制台。
【问题讨论】:
-
我建议您将数据挂载到位于主机中的卷中,以在容器因入口点结束而终止时保留数据。因此,您的数据将是持久的。
-
我不希望它被持久化到容器中,我希望它被持久化到我的本地机器,因此我用
>重定向它 -
我说的是一种在本地机器上持久化的方法,而不是容器。如果您使用的是 Linux,您可以
docker runpostgre 容器和-v /tmp/yourdatabackup:/var/lib/postgresql/8.x/因此,您的容器中的数据将始终可以从主机访问,因此可以在容器外部持久化 -
@Alex Galera 是对的。建议使用 docker 容器上的数据持久性在主机上进行挂载卷。
-
Docker 容器托管在 AWS 的 Kubernetes 中。感谢您的帮助,但您的建议不适用于这种情况,也不能解决我的实际问题。
标签: bash shell docker command-line kubernetes