«

Docker 容器自动化管理利器:15个高效脚本大揭秘

时间:2024-12-22 23:19     作者:Anglei     分类: 虚拟化


15 个 Docker 容器自动化管理的脚本每个示例都附带功能代码和详细解释。1. 自动启动所有容器有时在系统重启或维护后,您可能希望一次性启动所有停止的容器。#!/bin/bash

启动所有停止的容器

docker start $(docker ps -aq)

'docker ps -aq' 列出所有容器 ID(停止和运行)。'docker start' 通过传递 ID 作为参数来启动容器。2. 停止所有运行中的容器快速停止所有当前运行的容器。#!/bin/bash

停止所有运行中的容器

docker stop $(docker ps -q)

'docker ps -q' 列出仅运行中的容器 ID。'docker stop' 停止这些容器。3. 删除停止的容器通过清理停止的容器来释放空间。#!/bin/bash

删除所有停止的容器

docker rm $(docker ps -aq -f "status=exited")

docker ps -aq -f "status=exited" 过滤停止的容器。'docker rm' 删除它们。4. 删除dangling的镜像清除未使用的 Docker 镜像以节省磁盘空间。#!/bin/bash

删除dangling 镜像

docker rmi $(docker images -q -f "dangling=true")

docker images -q -f "dangling=true" 列出无标签的镜像 ID(悬空)。'docker rmi' 删除这些镜像。5. 备份容器的数据将运行中的容器的文件系统导出到 tar 文件。#!/bin/bash

备份容器的数据

CONTAINER_ID=$1
BACKUP_FILE="${CONTAINER_ID}_backup_$(date +%F).tar"
docker export $CONTAINER_ID > $BACKUP_FILE
echo "备份保存到 $BACKUP_FILE"

'docker export' 导出容器的文件系统。将容器 ID 作为参数传递给脚本。6. 从备份恢复容器从 tar 备份文件中重新创建容器。#!/bin/bash

从 tar 备份恢复容器

BACKUP_FILE=$1
docker import $BACKUP_FILE restored_container:latest
echo "容器恢复为 'restored_container:latest'"

'docker import' 从 tar 文件创建新镜像。该镜像可用于启动新容器。7. 监控容器的资源使用情况显示所有运行中容器的实时统计信息。#!/bin/bash

监控所有运行中容器的资源使用情况

docker stats --all

'docker stats' 显示实时的 CPU、内存和网络统计信息。'--all' 包括停止的容器。8. 自动重启容器确保关键容器在失败后自动重启。#!/bin/bash

使用重启策略重启容器

CONTAINER_NAME=$1
docker update --restart always $CONTAINER_NAME
echo "$CONTAINER_NAME 现在将在失败后自动重启。"

'docker update --restart always' 配置重启策略。将容器名称作为参数传递。9. 运行容器并在退出后清理在容器停止后自动删除。#!/bin/bash

运行容器并清理

IMAGE_NAME=$1
docker run --rm $IMAGE_NAME

'--rm' 在容器停止时删除容器。适用于一次性任务。10. 检查所有容器的日志将多个容器的日志合并到一个输出中。#!/bin/bash

显示所有容器的日志

docker ps -q | xargs -I {} docker logs {}

'docker ps -q' 列出运行中的容器 ID。'xargs' 将这些 ID 传递给 'docker logs'。11. 自动清理未使用的资源安排自动清理未使用的 Docker 资源。#!/bin/bash

清理未使用的资源

docker system prune -f --volumes

'docker system prune' 删除未使用的容器、网络和镜像。'--volumes' 还删除未使用的卷。12. 更新运行中的容器使用最新版本的镜像重新创建容器。#!/bin/bash

更新运行中的容器

CONTAINER_NAME=$1
IMAGE_NAME=$(docker inspect --format='{{.Config.Image}}' $CONTAINER_NAME)
docker pull $IMAGE_NAME
docker stop $CONTAINER_NAME
docker rm $CONTAINER_NAME
docker run -d --name $CONTAINER_NAME $IMAGE_NAME

'docker inspect' 获取容器的镜像名称。脚本拉取最新镜像并重新创建容器。13. 从容器复制文件将文件或目录从容器提取到主机。#!/bin/bash

从容器复制文件

CONTAINER_ID=$1
SOURCE_PATH=$2
DEST_PATH=$3
docker cp $CONTAINER_ID:$SOURCE_PATH $DEST_PATH
echo "从 $CONTAINER_ID 复制 $SOURCE_PATH 到 $DEST_PATH"

'docker cp' 在容器和主机之间复制文件。将容器 ID、源路径和目标路径作为参数传递。14. 重启所有容器快速重启所有运行中的容器。#!/bin/bash

重启所有容器

docker restart $(docker ps -q)

'docker restart' 通过 ID 重启容器。15. 列出所有暴露的端口检查运行中容器的暴露端口。#!/bin/bash

列出所有暴露的端口

docker ps --format '{{.ID}}: {{.Ports}}'

'docker ps --format' 自定义输出以显示容器 ID 和端口。请随意调整、实验和根据您的需求进行定制。

本文完结,相关标签: docker 脚本

 版权所有:Anglei
 文章标题:Docker 容器自动化管理利器:15个高效脚本大揭秘
 除非注明,本站文章如未特殊说明均为 MAXADA社区知识库 原创,且版权所有,请勿用于任何商业用途。

推荐阅读:

看完后感想如何?

路过(0)

雷人(0)

握手(2)

鲜花(0)

鸡蛋(0)
分享到: