社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

如何运行tar命令将docker容器中的文件夹备份到主机?

John • 3 年前 • 1485 次点击  

我的docker容器有一个目录,我想定期备份到主机。

我认为命令应该是这样的:

docker-compose exec SERVICE_NAME tar -czf - -C /dir/to/backup . > backup.tar.gz

这将创建一个名为 backup.tar.gz 在主机上。

相反 tar 检测到输出似乎要发送到终端,并出现错误:

tar: Refusing to write archive contents to terminal (missing -f option?)
tar: Error is not recoverable: exiting now

据我所知,没有 --force ,或类似的事情 焦油 命令

有没有合适的方法?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130684
 
1485 次点击  
文章 [ 1 ]  |  最新文章 3 年前
Nick ODell
Reply   •   1 楼
Nick ODell    3 年前

这里有两种方法:

  1. 您可以告诉docker compose不要使用 -T 选项

    例子:

    docker-compose exec -T SERVICE_NAME tar -czf - -C /dir/to/backup . > backup.tar.gz
    

    pty的存在是大多数程序(包括tar)检测它们是否在终端中运行或连接到管道的方式。

  2. 您可以使用 /dev/stdout 代替 - .

    例子:

    $ tar -czf /dev/stdout etc/
    

    这使得tar将归档文件写入标准输出。一定要记住这个限制 exists for a reason .