【问题标题】:How can I get a full Backup from a Docker Container如何从 Docker 容器中获取完整备份
【发布时间】:2020-12-21 22:04:08
【问题描述】:

我是 Docker 新手,我使用 Compose 文件为自己创建了一个容器。 现在我想在生产中使用我的开发结果。 有什么方法可以备份整个内容,以便我可以在生产环境中使用它?

我用来启动 Container 的 compose 文件:

    version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: myRootPassword
       MYSQL_DATABASE: wordpress_oxygen
       MYSQL_USER: wordpress_oxygen
       MYSQL_PASSWORD: myDBPassword

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}

【问题讨论】:

    标签: docker docker-compose docker-volume


    【解决方案1】:

    Docker compose 不适用于生产环境。对于生产尝试 docker swarm。 您还应该为 wordpress 添加音量,请参阅示例

    https://hub.docker.com/_/wordpress

    如何备份卷请见https://docs.docker.com/storage/volumes/#backup-restore-or-migrate-data-volumes

    【讨论】:

    • 我想我解释它有点困难。我已经运行了我的容器,这个容器是用 docker-compose 创建的,现在我只需要知道如何创建一个卷,甚至是我的 docker 容器的完整映像。
    • 您有两个容器,一个用于 db 服务,第二个用于 wordpress。对于备份数据库卷,您可以使用答案中的说明。对于备份 wordpress,您可以简单地将所需的文件从容器复制到主机: docker cp :/file/path/in/container/file /host/local/path/file.
    • 容器本身应该是无状态的,不需要备份。
    • 同时使用最新的容器版本是不好的做法,因为当您尝试恢复备份时可能会遇到问题。你应该指出特定的版本。例如 5.6.0-php7.3-apache。
    • 记住卷是简单文件夹的抽象。你应该先学习 docker 基础知识。这里最好的文档:docs.docker.com/get-started
    猜你喜欢
    • 1970-01-01
    • 2016-10-21
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 2011-10-09
    • 2021-10-19
    • 1970-01-01
    相关资源
    最近更新 更多