第二章:docker的镜像

二、docker的镜像

1、镜像是什么:

镜像是docker的三大核心概念之一。
docker运行容器钱需要本地存在对应的镜像,如果不存在本地,docker会尝试先从默认镜像仓库下载(默认使用Docker Hub公共注册服务器的仓
库),用户也可以通过配置,使用自定义的镜像仓库。
镜像是docker运行容器的前提。

2、获取镜像

①、获取镜像
A、docker pull NAME[:TAG]
#:如果不显示地指定TAG,则默认会选择latest标签,即下载仓库中最新版本的镜像

例如:获取Ubuntu镜像
在这里插入图片描述
注意:

A、还可以指定版本过去镜像
	sudo docker pull ubuntu:14.04
B、还可以选择指定的注册服务器的仓库下载
	sudo docker pull d1.dockerpool.com:5000/ubuntu

3、查看镜像信息
①、查看镜像信息

sudo docker images
#使用docker images命令可以列出本地主机上已有的镜像

例如查询镜像:
在这里插入图片描述
字段说明:
在这里插入图片描述
②、给镜像添加新的标签

sudo docker tag ubuntu:latest ubuntu:lstest
#添加一个新的Ubuntu:latest镜像

例如镜像添加标签:
在这里插入图片描述
注意:上图中不同标签的镜像ID是完全一致的,说明他们实际上指向的是用一个镜像文件,只是别名不同而已,标签在这里起到了引用或快捷方式的作用。
③、获取镜像的详细内容

sudo docker inspect 24f760ae67c1

在这里插入图片描述
4、搜寻镜像

sudo docker search TERM
#默认搜索Docker Hub官方仓库中的镜像
支持参数包括: -- automated=false 仅显示自定创建的镜像
			 --no-trunc=false输出信息不截断显示。
			 -s,   --stars=0 指定仅电视评价为指定星级以上的镜像。

例如:搜索待odoo关键字的镜像如下:
在这里插入图片描述
5、删除镜像
①、使用镜像的标签删除镜像

sudo docker rmi IMAGE
#IMAGE可以为标签或ID

例如删掉Ubunt镜像:
在这里插入图片描述
注意:当同一个镜像拥有多个标签时,删除镜像只会删除指定标签的镜像,不会影响镜像文件。如上图标注。
②、使用镜像ID删除镜像:

sudo docker rmi ID
#镜像ID

注意:当该镜像创建的容器存在时,镜像文件默认是无法被删除的。
例如:
A、创建一个简单容器:
在这里插入图片描述
B、删除该镜像:
在这里插入图片描述

Error response from daemon: conflict: unable to delete 94e814e2efa8 (must be forced) - image is being used by stopped container 340b0301f5c1
#Docker会提示有容器正在运行,无法删除

解决方案:
①、强行删除:(不推荐使用该方法)

sudo docker rmi -f ID
#不推荐使用-f参数䣂删除一个存在的容器依赖的镜像,会造成很多遗留问题,如再次查看镜像列表会发现一个标签为<none>的临时镜像,原来被强行删除的镜像换了新的ID继续存在系统中。

②、先删除容器在删除镜像:
A、删除容器

sudo docker rm ID(容器ID)

在这里插入图片描述
B、在删除容器
在这里插入图片描述
在查看镜像,镜像已被删除:
在这里插入图片描述
6、创建镜像
创建镜像的方法:
①、基于已有镜像的容器创建:
A、先创建一个新镜像,在启动镜像,并在其中进行修改操作,例如创建一个test文件,之后退出:
在这里插入图片描述
注意:一定要记住容器id
此时可以使用docker commit命令提交一个新的镜像,提交时可以使用ID或者名称来指定容器:

sudo docker commit -m "add a new file" -a "Docker Newbee" f43b289edf77  test

在这里插入图片描述
在这里插入图片描述
②、基于本地模板导入
例如下载一个Ubuntu-14.04的模板压缩包后,可以使用以下命令导入:

sudo cat ubuntu-14.04-x86_64-minimal.tar.gz |docker import - ubuntu:14.04

7、存出和载入镜像
①、存出镜像
存出镜像到本地,可以使用docker save命令
例如:
在这里插入图片描述
即已存在本地home文件目录下。
②、载入镜像:
可以使用docker load从存出的本地文件中在导入到本地镜像库中,例如从文件ubuntu_14.04.tar导入镜像到本地镜像列表,如下所示:

	sudo docker load --input ubuntu_14.04.tar
	#或者
	sudo docker load < ubuntu_14.04.tar

8、上传镜像:
可以将自制的镜像上传到 DockerHub官方仓库(需要登录)
格式如下:

		sudo docker push NAME[:TAG]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值