奇想齋

歸檔 鏈接

一些有用的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-2022 奈卜拉