Tag: 备份

为什么mysql备份没有恢复到我的docker容器?

我想dockerize mysql数据库。 我有.sh脚本准备环境,创build数据库,用户和其他东西。 Mysql dump restore命令不能在我的.sh脚本中工作,但是如果我打开容器shell和exec命令,它工作得很好。 我想在我的.sh脚本中使用命令。 我的脚本有什么问题? Dockerfile: FROM alpine:latest WORKDIR /app COPY startup.sh /startup.sh COPY backup.sql /app/ RUN apk add –update mysql mysql-client && rm -f /var/cache/apk/* COPY my.cnf /etc/mysql/my.cnf EXPOSE 3306 startup.sh: #!/bin/sh if [ -d /app/mysql ]; then echo "[i] MySQL directory already present, skipping creation" else echo "[i] MySQL data […]

Docker卷:备份

我已经创build了一个卷容器。 还有一个容器从容器中安装。 卷容器: docker run -d –name nexus-data nexus:1.0 echo "data-only container for Nexus" 我的Nexus容器: docker run -d -p 8443:8443 -p 8081:8081 –name nexus –restart=always –volumes-from nexus-data nexus:1.0 所以这工作正常。 我能够删除和重新创build我的nexus容器,而不会丢失数据。 卷容器(不处于运行状态)正在保存数据。 但是这种方法的瓶颈就是容器。 当我意外删除这个容器时,所有的数据都没有了。 这可以发生得很快,因为一些有用的命令将删除停止的容器也将删除卷容器。 所以我想为我的卷容器创build备份。 我试过的方法: $ docker cp nexus:/this/folder/ /home/ubuntu/backup-folder 和 $ docker import nexus > /home/ubuntu/backup.tar 所以我有一个文件夹和一个.tar在我的主目录。 现在我想知道导入其中一个备份的正确方法是什么? 我读了有关docker export命令来创build一个“新的图像”,但我不喜欢这种方法,因为我的备份文件夹是相当大的。