Fork me on GitHub

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] 

posted @ 2020-03-26 09:58  Aiden郭祥跃  阅读(268)  评论(0编辑  收藏  举报
";