Docker镜像
一、获取镜像
拉取:docker name:tag
D:\docker_test>docker pull ubuntu:18.04 18.04: Pulling from library/ubuntu 284055322776: Pull complete Digest: sha256:0fedbd5bd9fb72089c7bbca476949e10593cebed9b1fb9edf5b79dbbacddd7d6 Status: Downloaded newer image for ubuntu:18.04 docker.io/library/ubuntu:18.04
如果不指定tag,则默认会选择latest镜像,这会下载仓库中最新的镜像。
D:\docker_test>docker pull ubuntu Using default tag: latest latest: Pulling from library/ubuntu 7b1a6ab2e44d: Pull complete Digest: sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322 Status: Downloaded newer image for ubuntu:latest docker.io/library/ubuntu:latest
默认是从官方仓库拉取镜像,如果是从非官方仓库下载,则需要仓库名称前指定完整的仓库地址
docker pull hub.c.163.com/public/ubuntu:18.04
二、查看镜像信息
1.列出镜像
D:\docker_test>docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest ba6acccedd29 2 weeks ago 72.8MB ubuntu 18.04 5a214d77f5d7 4 weeks ago 63.1MB
2.使用tag命令添加镜像标签
D:\docker_test>docker tag ubuntu:latest myubuntu:latest D:\docker_test>docker images REPOSITORY TAG IMAGE ID CREATED SIZE myubuntu latest ba6acccedd29 2 weeks ago 72.8MB ubuntu latest ba6acccedd29 2 weeks ago 72.8MB ubuntu 18.04 5a214d77f5d7 4 weeks ago 63.1MB
添加的镜像ID和原镜像ID一致,实际上只是对原镜像起了个别名
3.使用inspect命令查看详细信息
D:\docker_test>docker inspect ubuntu:18.04
4.使用history命令查看镜像历史
D:\docker_test>docker history ubuntu:18.04 IMAGE CREATED CREATED BY SIZE COMMENT 5a214d77f5d7 4 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B <missing> 4 weeks ago /bin/sh -c #(nop) ADD file:0d82cd095966e8ee7… 63.1MB
三、搜索镜像
D:\docker_test>docker search ubuntu
四、删除和清理镜像
1.使用标签删除镜像
D:\docker_test>docker rmi myubuntu:latest
Untagged: myubuntu:latest
D:\docker_test>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest ba6acccedd29 2 weeks ago 72.8MB
ubuntu 18.04 5a214d77f5d7 4 weeks ago 63.1MB
-f:强制删除镜像,即使有容器依赖它。
D:\docker_test>docker rmi ubuntu:18.04 -f
当同一个镜像拥有多个标签时,rmi镜像只会删除该镜像多个标签中的指定标签而已,并不影响镜像文件。
2.使用镜像ID删除镜像
D:\docker_test>docker rmi ba6acccedd29
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Deleted: sha256:ba6acccedd2923aee4c2acc6a23780b14ed4b8a5fa4e14e252a23b846df9b6c1
Deleted: sha256:9f54eef412758095c8079ac465d494a2872e02e90bf1fb5f12a1641c0d1bb78b
3.清理镜像
使用docker一段时间后,系统会遗留一些临时文件,以及一些没有使用的镜像。可以使用docker image prune命令来进行清理。
D:\docker_test>docker image prune WARNING! This will remove all dangling images. Are you sure you want to continue? [y/N] y Total reclaimed space: 0B
-a:删除所有无用镜像,不只是临时镜像
-f:强制删除镜像,而不进行确认提示
五、创建镜像
创建镜像有三种方法:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建。
1.基于已有容器创建
命令:docker [container] commit
参数:-a:作者信息
-c:提交时候的Dockerfile指令
-m:提交信息
-p:提交时暂停容器执行
D:\docker_test>docker run -it ubuntu:18.04 /bin/bash root@a9e56393e5ed:/# ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr root@a9e56393e5ed:/# touch touch: missing file operand Try 'touch --help' for more information. root@a9e56393e5ed:/# touch test root@a9e56393e5ed:/# exit exit D:\docker_test>docker commit -m "Added a new file" -a "Docker Newbee" a9e56393e5ed test:0.1 sha256:483e7efc81d482fd28f252044dab884da3c94c491f68a589d7c499e96f177b7c D:\docker_test>docker images REPOSITORY TAG IMAGE ID CREATED SIZE test 0.1 483e7efc81d4 15 seconds ago 63.1MB ubuntu 18.04 5a214d77f5d7 4 weeks ago 63.1MB
2.基于本地模板导入
docker import - ubuntu:18.04
3.基于Dockerfile创建
六、导出和导入镜像
1.导出镜像
D:\docker_test>docker save -o ubuntu_18.04.tar ubuntu:18.04
2.导入镜像
D:\docker_test>docker load -i ubuntu_18.04.tar 或
D:\docker_test>docker load < ubuntu_18.04.tar
七、上传镜像
D:\docker_test>docker push test:0.1