在实际利用docker构建编译运行项目时,会产生大量不同版本标签为none的镜像。
这种镜像在Docker官方文档中被称作dangling images,指的是没有标签并且没有被容器使用的镜像。如果不及时清理,会占用大量的存储空间,对于系统的稳定性很不友好。
详细的资料说明请参阅官网信息:
https://docs.docker.com/config/pruning/
1.查看所有的镜像
通过images命令,可以查看目前docker环境所有构建的镜像,具体可查看镜像的名称,标签,创建时间和镜像大小等信息。
docker images
2.列出所有标签为“none”的镜像
此步骤是为了确认需要删除的镜像信息。
docker images --filter "dangling=true"
3.删除所有标签为“none”的镜像
使用以下命令删除所有带有标签为 “none” 的镜像。
需要特别注意的是,删除镜像是不可逆的操作,请谨慎使用。
方案一:docker rmi $(docker images -f "dangling=true" -q)
方案二:docker image prune
4.也可以使用rmi命令单个操作删除(附常用命令)
需要注意的是,需要先删除容器或者停止,才能删除对应的镜像。
1.查看容器:
docker ps(正在运行的)/docker ps -a(全部)
2.删除容器:
docker rm id/name
3.查看镜像:
docker images(正在使用的)/docker images -a(全部)
4.删除镜像:
docker rmi id/name
5.加载镜像:
docker load -i 镜像保存文件位置
eg:docker load test.tar
6.保存镜像:
docker save 镜像名/镜像ID -o 镜像保存位置和名字(镜像名必须按照仓库名:标签取值)
eg:docker save openjdk:17-jdk-alpine -o ./openjdk17.tar
7.通过docker-compose进入容器内部操作(服务名称指的是compose文件中的服务名,并非是容器名)
docker-compose exec 服务名称 /bin/bash
8.查看当前docker的所有网络信息
docker network ls
9.创建docker自定义网络并使用网络驱动
备注:默认情况下,如果你不指定驱动,Docker 会使用 bridge 驱动。
bridge驱动使用Linux桥接功能,允许容器连接到同一个虚拟网络,并通过 NAT 与外部通信。
docker network create --driver=bridge testnetwork
10.查看某一网络的详细信息
docker network inspect testnetwork
11.进入容器内部操作
docker exec -it 495616fb3523 bash
docker exec -it emqx01_server sh