Docker卷:备份
Docker volume: backup
我已经创建了一个卷容器。以及一个从卷容器挂载到 en 的容器。
卷容器:
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
所以这工作正常。我能够在不丢失数据的情况下删除和重新创建我的联系容器。卷容器(未处于 运行 状态)正在保存数据。
但是这种方法的瓶颈是体积容器。当我不小心删除了这个容器时,所有的数据都没有了。
这可能会很快发生,因为一些有用的命令会删除已停止的容器,也会删除卷容器。
所以我想为我的卷容器创建备份。
我尝试了以下方法:
$ docker cp nexus:/this/folder/ /home/ubuntu/backup-folder
和
$ docker import nexus > /home/ubuntu/backup.tar
所以我的主目录中有一个文件夹和一个.tar。
现在我想知道导入这些备份之一的正确方法是什么?
我读到过有关 docker export
创建 'new image' 命令的内容,但我不喜欢这种方法,因为我的备份文件夹非常大。
干脆不使用数据卷容器:自docker 1.9,可以使用docker volume create
instead. Docker now has volume commands.
The following example also creates the my-named-volume
volume, this time using the docker volume create
command.
$ docker volume create --name my-named-volume -o size=20GB
$ docker run -d -P \
-v my-named-volume:/opt/webapp \
--name web training/webapp python app.py
这些卷已命名,由 docker 卷 ls 列出,您可以备份 /var/lib/docker/volumes
。
使用数据卷容器,您需要记住该容器中数据的路径(docker inspect -f '{{ (index .Mounts 0).Source }}
),将其写入文件,并在创建新的数据卷容器时使用该路径。
我曾经用 updateDataContainerPath.sh
. See "".
来做到这一点
我不需要那种复杂的机制,因为 docker 1.9 和命名卷。
我已经创建了一个卷容器。以及一个从卷容器挂载到 en 的容器。
卷容器:
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
所以这工作正常。我能够在不丢失数据的情况下删除和重新创建我的联系容器。卷容器(未处于 运行 状态)正在保存数据。
但是这种方法的瓶颈是体积容器。当我不小心删除了这个容器时,所有的数据都没有了。 这可能会很快发生,因为一些有用的命令会删除已停止的容器,也会删除卷容器。
所以我想为我的卷容器创建备份。 我尝试了以下方法:
$ docker cp nexus:/this/folder/ /home/ubuntu/backup-folder
和
$ docker import nexus > /home/ubuntu/backup.tar
所以我的主目录中有一个文件夹和一个.tar。 现在我想知道导入这些备份之一的正确方法是什么?
我读到过有关 docker export
创建 'new image' 命令的内容,但我不喜欢这种方法,因为我的备份文件夹非常大。
干脆不使用数据卷容器:自docker 1.9,可以使用docker volume create
instead. Docker now has volume commands.
The following example also creates the
my-named-volume
volume, this time using thedocker volume create
command.
$ docker volume create --name my-named-volume -o size=20GB
$ docker run -d -P \
-v my-named-volume:/opt/webapp \
--name web training/webapp python app.py
这些卷已命名,由 docker 卷 ls 列出,您可以备份 /var/lib/docker/volumes
。
使用数据卷容器,您需要记住该容器中数据的路径(docker inspect -f '{{ (index .Mounts 0).Source }}
),将其写入文件,并在创建新的数据卷容器时使用该路径。
我曾经用 updateDataContainerPath.sh
. See "
我不需要那种复杂的机制,因为 docker 1.9 和命名卷。