Docker.镜像管理

镜像管理

0.前言

<镜花缘>
咱们世界也许也是在一个容器中...

0.环境

[root@VM_0_12_centos docker]# docker -v
Docker version 19.03.11, build 42x35exxfx

1.拉取镜像

1.1.官方镜像
[root@VM_0_12_centos ~]# docker image pull ubuntu:14
Error response from daemon: manifest for ubuntu:14 not found: manifest unknown: manifest unknown

经验+1
//版本号写错了...

[root@VM_0_12_centos ~]# docker image pull ubuntu:14.04
14.04: Pulling from library/ubuntu
Get https://registry-1.docker.io/v2/library/ubuntu/manifests/sha256:bd0223687054d0f8884fc9e872392c6385a3195d612400495962e270b572ed06: net/http: TLS handshake timeout

失败+2
//需要梯子...→

[root@VM_0_12_centos docker]# docker pull mysql:5.7

//换了一个镜像拉取,还是特别慢...先去找个比较小的镜像去,再回来拉取...
//功夫不负有心人,终于找到了hello-world先生

[root@VM_0_12_centos docker]# docker pull hello-world
1.2.私有库
docker pull quay.io/coreos/flannel:y0.10.0-amd64

2.搜索镜像

2.1.在docker hub网站上搜索
官方网站:dockerHub
非常方便,
找到之后,提供温馨的复制服务:"Copy and paste to pull this image"...


2.2.Docker 命令行

[root@VM_0_12_centos docker]# docker search hello-world

Docker版本"19.03.11"返回4列:
["Name","Description","Official","AutoMated"]
["名字","描述","官方","自动"]
//前3列都好理解,但是自动不自动怎么区分?


3.查询镜像

[root@VM_0_12_centos docker]# docker images -a

//发现了好多不正经的显示为的镜像,
不管他们是什么,但是看着好别扭,删除了在说,宁删错不放过...




4.删除镜像

4.1.删除无tag的镜像

[root@VM_0_12_centos docker]# docker rmi 39d780c0df44
Error response from daemon: conflict: unable to delete 39d780c0df44 (must be forced) - image is being used by stopped container 99f48fd6254d

经验+1
//已经有容器使用了,哪怕这个容易已经停用了...

#容器.查看.所有
[root@VM_0_12_centos docker]# docker ps -a

#容器.删除.指定Id.错误示范
[root@VM_0_12_centos docker]# docker rmi 99f48fd6254d
Error: No such image: 99f48fd6254d

#容器.删除.指定Id.成功
[root@VM_0_12_centos docker]# docker rm 99f48fd6254d
99f48fd6254d

经验+1
//删除容器失败,知道了["rmi","rm"]的区别了,{rmi}不能用于删除容器,
//{rmi}比{rm}多出的那个{i}就是指的{image}?

#镜像.删除.继续...
[root@VM_0_12_centos docker]# docker rmi 39d780c0df44
Error response from daemon: conflict: unable to delete 39d780c0df44 (must be forced) - image is being used by stopped container ac06cae637d7

经验+1...
//竟然除了那个容器在使用这个镜像,还有其它容器在使用...
//万一再有百八十个容器使用了这个镜像,
//我需要重复["删除容器","试图删除镜像"]重复百八十遍...?

//我想查找引用了这个镜像的有哪些容器..未果...So...↓

#容器.删除.全部
docker rm $(docker ps -aq)

//tar .git?
//啥是tag?"未将引用设置到对象的实例"..tag就是那个引用,image就是tag指向那个对象.


4.2.删除正在使用的镜像

[root@VM_0_12_centos docker]# docker rmi -f 39d780c0df44

摘抄文档

原文地址:https://www.cnblogs.com/love-zf/p/13670386.html