Docker(6):Docker镜像基本操作(下)
1、清理镜像
使用Docker一段时间后,系统中可能会遗留一些临时的镜像文件,以及一些没有被使用的镜像,可以通过docker image prune命令来进行清理。
支持选项包括:
-a, -all:删除所有无用镜像,不光是临时镜像;
-filter filter:只清理符合给定过滤器的镜像;
-f, -force:强制删除镜像,而不进行提示确认。
例:清理临时的遗留镜像文件层
# docker image prune -f
2、创建镜像
创建镜像的方法主要有三种:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建
1)、基于已有镜像的容器创建
首先启动一个镜像。
# docker run -it centos /bin/bash
成功创建容器,并进入容器当中。记住容器的ID为:4dbd1cec2e5f
在新创建的centos容器的 /usr/local 目录下创建 test.txt 文件
# cd /usr/local/
# touch test.txt
然后退出容器
# exit
此时该容器与原centos镜像相比,在 /usr/local 目录下多了test.txt 文件
使用docker commit 命令来提交为一个新的镜像
# docker commit -m "add a new file" -a "Aiden" 4dbd1cec2e5f aiden/centos:1.0
创建完成,使用 docker images 查看本地镜像
# docker ps
可以看到新创建的镜像
2)、基于本地模板导入
可以直接从一个操作系统的模板文件导入成一个镜像,使用docker import 命令。
命令格式: docker [image] import [OPTIONS] file|URL|-[REPOSITORY [:TAG]]
下载centos7 的模板文件,https://download.openvz.org/template/precreated/ , 将下载好的模板文件上传至机器 /usr/local 路径下:
将模板文件导入成镜像:
# cat centos-7-x86_64.tar.gz | docker import - centos:7.0
导入完成,可以看到新导入的系统镜像:
3)、基于Dockerfile文件创建
参考: https://www.cnblogs.com/guoxiangyue/p/10021885.html
3、镜像的存出和载入
1)、镜像的存出
镜像的存储可以将docker中的镜像导入到本地文件当中。
使用命令:docker [image] save
例:将之前创建的 aiden/centos:1.0 镜像 ,导出保存至本地。
# docker save -o aiden_centos_1.0.tar aiden/centos:1.0
执行完毕,可在本地目录中,看到导出的镜像文件:
2)、载入镜像
可以将从别处复制过来的镜像文件,载入到当前的docker环境中。
使用命令:docker [image] load
例:将刚才导出的aiden/centos:1.0 的镜像,重新载入到docker环境中。
首次将docker中现有的aiden/centos:1.0删除掉
# docker rmi aiden/centos:1.0
现有镜像中,已经没有aiden/centos:1.0 镜像:
从文件 aiden_centos_1.0.tar 中 将镜像导入到本地镜像列表
# docker load -i aiden_centos_1.0.tar
然后查看本地镜像列表,可看到aiden/centos:1.0 已经载入进来。
4、上传镜像
可将本地的docker镜像 上传至 Docker Hub的官方仓库,也可通过配置将镜像上传至阿里云仓库和本地私有仓库。
使用命令:docker [image] pushNAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]