gpt4 book ai didi

docker - 无法备份 docker 卷

转载 作者:行者123 更新时间:2023-12-01 23:47:04 24 4
gpt4 key购买 nike

我正在遵循 here 的官方 docker 指南备份 docker 卷。我还知道this SO question但是我仍然遇到错误。运行以下命令:

docker run --rm --volumes-from dbstore -v $(pwd):/backup ny_db_1 tar cvf /backup/backup.tar /dbdata

无论我输入什么图像名称或容器名称或容器 ID,我都会收到以下错误:

Unable to find image 'ny_db_1:latest' locally

我要备份的卷:

$ docker volume ls
DRIVER VOLUME NAME
local ny_postgres_data

我的容器:

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
39e71e660eda postgres:10.1-alpine "docker-entrypoint.s…" 4 days ago Up 23 minutes 0.0.0.0:5434->5433/tcp ny_db_1

如何备份我的卷?

更新:

我尝试了以下操作,但遇到了新错误:

$ docker run --rm --volumes-from 39e71e660eda -v $(pwd):/backup postgres:10.1-alpine tar:local cvf /backup/backup.tar /dbdata


/usr/local/bin/docker-entrypoint.sh: line 145: exec: tar:local: not found

最佳答案

docker run 语法为 docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...] - ny_db_1 是容器的名称,docker 将尝试使用不存在的IMAGEny_db_1”,因此出现错误:“无法在本地找到图像“ny_db_1:latest””(如果未指定,latest 是默认的 [:TAG])。

--volumes-frommount volumes from the specified container(s)到从 IMAGE[:TAG] 生成的新容器中,例如:docker run --rm --volumes-from db -v $(pwd):/backup ubuntu:18.04 tar czvf/备份/backup.tar/dbdata

注意:如果您要备份 PostgreSQL数据库,那么恕我直言,您最好使用适当的工具来备份和恢复数据库,例如:

使用pg_dumpall备份:

docker run --rm \
--name db-backup \
--entrypoint pg_dumpall \
--volume ${PWD}/backup:/backup \
--volumes-from db \
postgres:9 --host /var/run/postgresql --username postgres --clean --oids --file /backup/db.dump

使用psql恢复:

docker run --rm -it \
-v ${PWD}/backup:/restore \
--name restore \
postgres:10.1-alpine

docker exec restore psql \
--host /var/run/postgresql \
--username postgres \
--file /restore/db.dump postgres

docker rename restore NEW_NAME

关于docker - 无法备份 docker 卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57966249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com