阅读以下链接:
- https://docs.docker.com/userguide/dockervolumes/#backup-restore-or-migrate-data-volumes
- Backing up data volume containers off machine
我的理解是我可以将数据卷容器进行归档备份。然而在阅读第一个链接后,我似乎无法使其正常工作。
docker create -v /sonatype-work --name sonatype-work sonatype/nexus /bin/true
我使用以下命令在容器中启动sonatype/nexus镜像:
--volumes-from sonatype-nexus
一切都很好,在运行Nexus之后,我检查了数据卷,可以看到内部已经创建,并停止并删除Nexus,再次启动时,所有更改都得到了保存。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f84abb054d2e sonatype/nexus "/bin/sh -c 'java -" 22 seconds ago Up 21 seconds 0.0.0.0:8081->8081/tcp nexus
1aea2674e482 sonatype/nexus "/bin/true" 25 seconds ago Created sonatype-work
我想备份sonatype-work,但一直没有成功。
[root@ansible22 ~]# pwd
/root
[root@ansible22 ~]# docker run --volumes-from sonatype-work -v $(pwd):/backup ubuntu tar cvf /backup/sonatype-work-backup.tar /sonatype-work
tar: /backup/sonatype-work-backup.tar: Cannot open: Permission denied
tar: Error is not recoverable: exiting now
我尝试以 -u root 的身份运行,我还尝试了以下方式:
/root/sonatype-work-backup.tar
当我这样做时,我可以看到它正在撕裂东西,但我没有看到tar文件。根据示例和我的理解,我认为那不是正确的方法。有人能看出我哪里做错了吗?编辑:Linux版本信息。
Fedora release 22 (Twenty Two)
NAME=Fedora
VERSION="22 (Twenty Two)"
ID=fedora
VERSION_ID=22
PRETTY_NAME="Fedora 22 (Twenty Two)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:22"
HOME_URL="https://fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=22
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=22
PRIVACY_POLICY_URL=https://fedoraproject.org/wiki/Legal:PrivacyPolicy
VARIANT="Server Edition"
VARIANT_ID=server
Fedora release 22 (Twenty Two)
Fedora release 22 (Twenty Two)
docker run --volumes-from sonatype-work -v /tmp:/backup ubuntu tar cvf /backup/sonatype-work-backup.tar /sonatype-work
会怎样? - Will Hogan--volumes-from
后面添加:Z
,即docker run --volumes-from sonatype-work -v $(pwd):/backup:Z ubuntu tar cvf /backup/sonatype-work-backup.tar /sonatype-work
。另一个选择是特权模式下运行容器,即使用--privileged=true
参数。 - Will Hogan-u root
是一样的吗? - Pompey Magnus