奇想斋

关于 文章 友链 订阅

一些有用的Docker命令

2021-10-15

最近积攒了一些有用的Docker命令和脚本,处理容器问题的时候还算有用。

临时任务

打开某一个Docker Compose容器的临时终端:

docker-compose exec -T [container] [command]

在某一个容器里面临时执行一个命令:

docker-compose run --rm [container] [command]

Docker Volume

把Docker Volume备份到tar文件:

#!/bin/bash

# Usage: cmd [VOLUME_NAME] [ARCHIVE_FILE]

if [ "$#" -ne 2 ]; then
    echo "Illegal number of parameters"
    exit
fi
docker run -v $1:/data --name datastore alpine sh -c "cd / && tar -cf /tmp/data.tar data" && \
docker cp datastore:/tmp/data.tar $2
docker rm datastore

恢复用上面的方法创建的Docker Volume备份:

#!/bin/bash

# Usage: cmd [ARCHIVE_FILE] [VOLUME]

if [ "$#" -ne 2 ]; then
    echo "Illegal number of parameters"
    exit
fi
docker volume create $2 &&\
docker run -d -v $2:/tmp/data --name datarestore alpine sh -c "tail -f /dev/null" && \
docker cp $1 datarestore:/tmp/data.tar && \
docker exec datarestore sh -c "cd /tmp && tar -xf data.tar"
docker stop datarestore
docker rm datarestore

Powered by Pandoc ©️ 2017-2021 奈卜拉
欢迎致信 nebula_moe@outlook.com