镜像管理
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