Ivan 2021-03-08 07:59:20 +08:00 zatwierdzone przez GitHub
commit e97b54b6ef
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 65 dodań i 4 usunięć

Wyświetl plik

@ -6,16 +6,30 @@ This repository will contain different convenience scripts for docker I have gat
The purpose for this script is that I can easily create a clone of an existing docker data with
a new name. This will allow me to create a duplicate of an existing data volume I use in the
production environment of my blog for example and take that duplicate to my development version
production environment of my blog for example and take that duplicate to my development version
to ensure I have the latest production data also at development.
You can find more details in my blog post [Cloning Docker Data Volumes](https://www.guidodiepen.nl/2016/05/cloning-docker-data-volumes/)
## docker_clone_volume_across_servers.sh
The script relates to the above one, in addition, it adds the possibility to transfer named volume from one host machine to another.
It is worth noting, that :
* you should have running docker daemon and have ssh available on both hosts;
* you ought to have access to root;
* you might want be ensured that your destination containers are stopped before copying the volume.
Refer to [stackoverflow topic](https://stackoverflow.com/questions/42973347/how-to-copy-docker-volume-from-one-machine-to-another).
### to do
check if target volume has already existed (or not needed, cauz user merely should understand circumstances)
## docker_get_data_volume_info.sh
The purpose for this script is that I can easily get a list of details for all data volumes
that are currently present. The information that is provided to the user as output is per
data volume the current size of the data volume and a list of stopped or running containers
The purpose of this script is that I can easily get a list of details for all data volumes
that are currently present. The information that is provided to the user as output is per
data volume the current size of the data volume and a list of stopped or running containers
that have a link to this data volume, including the image corresponding to the container.
The script allows me to easily see if there are some data volumes on my disk that are taking
up a lot of space and are not needed anymore.

Wyświetl plik

@ -0,0 +1,47 @@
#!/bin/bash
# The script repeates docker_clone_volume.sh
# Thanks to maddin25 who provides solution in
# https://stackoverflow.com/questions/42973347/how-to-copy-docker-volume-from-one-machine-to-another
# The script is mainly useful if you are using named volumes and
# on both hosts you should have running docker diemon
# and have access to root, obviously.
# arg: $1: source volume name
# arg: $2: target host
# arg: $3: target volume name
#First check if the user provided all needed arguments
if [ "$1" = "" ]
then
echo "Please provide a source volume name"
exit
fi
if [ "$2" = "" ]
then
echo "Please provide a target host (e.g. 1.1.1.1)"
exit
fi
if [ "$3" = "" ]
then
echo "Please provide a target volume name"
exit
fi
#Check if the source volume name does exist
docker volume inspect $1 > /dev/null 2>&1
if [ "$?" != "0" ]
then
echo "The source volume \"$1\" does not exist"
exit
fi
docker run --rm \
-v $1:/from alpine ash -c \
"cd /from ; tar -czf - . " | \
ssh $2 \
"docker run --rm -i -v \"$3\":/to alpine ash -c 'cd /to ; tar -xpvzf - '"