- 1、自动启动所有容器">1、自动启动所有容器
- 2、停止所有运行中的容器">2、停止所有运行中的容器
- 3、删除停止的容器">3、删除停止的容器
- 4、删除dangling的镜像">4、删除dangling的镜像
- 5、备份容器的数据">5、备份容器的数据
- 6、从备份恢复容器">6、从备份恢复容器
- 7、监控容器的资源使用情况">7、监控容器的资源使用情况
- 8、自动重启容器">8、自动重启容器
- 9、运行容器并在退出后清理">9、运行容器并在退出后清理
- 10、检查所有容器的日志">10、检查所有容器的日志
- 11、自动清理未使用的资源">11、自动清理未使用的资源
- 12、更新运行中的容器">12、更新运行中的容器
- 13、从容器复制文件">13、从容器复制文件
- 14、重启所有容器">14、重启所有容器
- 15、列出所有暴露的端口">15、列出所有暴露的端口
1、自动启动所有容器
有时在系统重启或维护后,可能希望一次性启动所有停止的容器。
#!/bin/bash# 启动所有停止的容器docker start $(docker ps -aq)
<font style="color:rgb(1, 1, 1);">docker ps -aq</font> 列出所有容器 ID(停止和运行)。
<font style="color:rgb(1, 1, 1);">docker start</font> 通过传递 ID 作为参数来启动容器。
2、停止所有运行中的容器
快速停止所有当前运行的容器。
#!/bin/bash# 停止所有运行中的容器docker stop $(docker ps -q)
<font style="color:rgb(1, 1, 1);">docker ps -q</font> 列出仅运行中的容器 ID。
<font style="color:rgb(1, 1, 1);">docker stop</font> 停止这些容器。
3、删除停止的容器
通过清理停止的容器来释放空间。
#!/bin/bash# 删除所有停止的容器docker rm $(docker ps -aq -f "status=exited")
<font style="color:rgb(1, 1, 1);">docker ps -aq -f "status=exited"</font> 过滤停止的容器。
<font style="color:rgb(1, 1, 1);">docker rm</font> 删除它们。
4、删除dangling的镜像
清除未使用的 Docker 镜像以节省磁盘空间。
#!/bin/bash# 删除dangling 镜像docker rmi $(docker images -q -f "dangling=true")
<font style="color:rgb(1, 1, 1);">docker images -q -f "dangling=true"</font> 列出无标签的镜像 ID(悬空)。
<font style="color:rgb(1, 1, 1);">docker rmi</font> 删除这些镜像。
5、备份容器的数据
将运行中的容器的文件系统导出到 tar 文件。
#!/bin/bash# 备份容器的数据CONTAINER_ID=$1BACKUP_FILE="${CONTAINER_ID}_backup_$(date +%F).tar"docker export $CONTAINER_ID > $BACKUP_FILEecho "备份保存到 $BACKUP_FILE"
<font style="color:rgb(1, 1, 1);">docker export</font> 导出容器的文件系统。
6、从备份恢复容器
从 tar 备份文件中重新创建容器。
#!/bin/bash# 从 tar 备份恢复容器BACKUP_FILE=$1docker import $BACKUP_FILE restored_container:latestecho "容器恢复为 'restored_container:latest'"
<font style="color:rgb(1, 1, 1);">docker import</font> 从 tar 文件创建新镜像。
7、监控容器的资源使用情况
显示所有运行中容器的实时统计信息。
#!/bin/bash# 监控所有运行中容器的资源使用情况docker stats --all
<font style="color:rgb(1, 1, 1);">docker stats</font> 显示实时的 CPU、内存和网络统计信息。
<font style="color:rgb(1, 1, 1);">--all</font> 包括停止的容器。
8、自动重启容器
确保关键容器在失败后自动重启。
#!/bin/bash# 使用重启策略重启容器CONTAINER_NAME=$1docker update --restart always $CONTAINER_NAMEecho "$CONTAINER_NAME 现在将在失败后自动重启。"
<font style="color:rgb(1, 1, 1);">docker update --restart always</font> 配置重启策略。
9、运行容器并在退出后清理
在容器停止后自动删除。
#!/bin/bash# 运行容器并清理IMAGE_NAME=$1docker run --rm $IMAGE_NAME
<font style="color:rgb(1, 1, 1);">--rm</font> 在容器停止时删除容器。
10、检查所有容器的日志
将多个容器的日志合并到一个输出中。
#!/bin/bash# 显示所有容器的日志docker ps -q | xargs -I {} docker logs {}
<font style="color:rgb(1, 1, 1);">docker ps -q</font> 列出运行中的容器 ID。
<font style="color:rgb(1, 1, 1);">docker logs</font>。
11、自动清理未使用的资源
安排自动清理未使用的 Docker 资源。
#!/bin/bash# 清理未使用的资源docker system prune -f --volumes
<font style="color:rgb(1, 1, 1);">docker system prune</font> 删除未使用的容器、网络和镜像。
12、更新运行中的容器
使用最新版本的镜像重新创建容器。
#!/bin/bash# 更新运行中的容器CONTAINER_NAME=$1IMAGE_NAME=$(docker inspect --format='{{.Config.Image}}' $CONTAINER_NAME)docker pull $IMAGE_NAMEdocker stop $CONTAINER_NAMEdocker rm $CONTAINER_NAMEdocker run -d --name $CONTAINER_NAME $IMAGE_NAME
<font style="color:rgb(1, 1, 1);">docker inspect</font> 获取容器的镜像名称。
13、从容器复制文件
将文件或目录从容器提取到主机。
#!/bin/bash# 从容器复制文件CONTAINER_ID=$1SOURCE_PATH=$2DEST_PATH=$3docker cp $CONTAINER_ID:$SOURCE_PATH $DEST_PATHecho "从 $CONTAINER_ID 复制 $SOURCE_PATH 到 $DEST_PATH"
<font style="color:rgb(1, 1, 1);">docker cp</font> 在容器和主机之间复制文件。
14、重启所有容器
快速重启所有运行中的容器。
#!/bin/bash# 重启所有容器docker restart $(docker ps -q)
<font style="color:rgb(1, 1, 1);">docker restart</font> 通过 ID 重启容器。
15、列出所有暴露的端口
检查运行中容器的暴露端口。
#!/bin/bash# 列出所有暴露的端口docker ps --format '{{.ID}}: {{.Ports}}'
<font style="color:rgb(1, 1, 1);">docker ps --format</font> 自定义输出以显示容器 ID 和端口。
