- 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=$1
BACKUP_FILE="${CONTAINER_ID}_backup_$(date +%F).tar"
docker export $CONTAINER_ID > $BACKUP_FILE
echo "备份保存到 $BACKUP_FILE"
<font style="color:rgb(1, 1, 1);">docker export</font>
导出容器的文件系统。
6、从备份恢复容器
从 tar 备份文件中重新创建容器。
#!/bin/bash
# 从 tar 备份恢复容器
BACKUP_FILE=$1
docker import $BACKUP_FILE restored_container:latest
echo "容器恢复为 '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=$1
docker update --restart always $CONTAINER_NAME
echo "$CONTAINER_NAME 现在将在失败后自动重启。"
<font style="color:rgb(1, 1, 1);">docker update --restart always</font>
配置重启策略。
9、运行容器并在退出后清理
在容器停止后自动删除。
#!/bin/bash
# 运行容器并清理
IMAGE_NAME=$1
docker 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=$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
<font style="color:rgb(1, 1, 1);">docker inspect</font>
获取容器的镜像名称。
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"
<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 和端口。