上一篇文章介绍了docker在centos中的安装过程及核心概念讲解,这一篇我们主要讲解镜像的常用操作。
1. 获取镜像
命令:
docker pull <域名>//:
例如:
docker pull ubunt
说明:
镜像是Docker运行容器的前提。
用户可以使用docker pull 命令从网络上下载镜像。运行如上命令即可下载ubuntu的镜像,当然如果不加域名,则默认到Docker hub官方仓库 https://hub.docker.com/ 搜索下载镜像,如果不显式地指定tag,则默认会选择latest标签,即下载仓库中最新版本的镜像。
ubuntu的镜像下载比较慢,耐心等待。
2. 查看镜像列表
命令:
docker images
说明:
使用docker images命令可以列出本地主机上已有的镜像。
信息含义:来自于哪个仓库、镜像的标签信息、镜像的ID号(唯一)、创建时间、镜像大小。
可以看到我们刚刚下载好的ubuntu镜像。
3. 查看镜像信息
命令:
docker inspect
如:
docker inspect f2a91732366c
说明:
docker inspect命令返回的是一个JSON的格式消息,如果我们只要其中的一项内容时,可以通过-f参数来指定。Image_id通常可以使用该镜像ID的前若干个字符组成的可区分字符串来替代完成的ID。
如果只想查看Created属性,可以
docker inspect -f {{.Created}} f2a91732366c
如果觉得image_id过长的话,可以尝试只输入image_id的前几位,不过要保证输入的前几位没有重复的。
可以看到,结果和上面的一样。
4. 查找镜像
命令:
docker search
说明:
使用docker search命令可以搜索远端仓库中共享的镜像,默认搜索Docker hub官方仓库中的镜像。列名分别为镜像名称、镜像描述、获得stars数、是否为官方镜像、是否自动构建。
5. 删除镜像
命令:
docker rmi :
说明:
使用docker rmi命令可以删除镜像,其中image可以为标签或ID。
注意:
当同一个镜像拥有多个标签,docker rmi只是删除该镜像多个标签中的指定标签而已,而不影响镜像文件。
当有该镜像创建的容器存在时,镜像文件默认是无法被删除的。
为了测试,我们先给ubuntu镜像打个标签,命令:
docker tag 0458a4468cbc linsuren/ubuntu:test
可以看到现在已经多出了一个image id和ubuntu相同的镜像,只是TAG不同。
现在我们把它删掉,命令:
docker rmi linsuren/ubuntu:test
docker rmi ubuntu:latest
则会把该镜像文件彻底删除。
现在我们用ubuntu创建一个容器,并输出Hello World,再尝试删除镜像,发现不能删除,但是我们可以加上-f实现强制删除,当然并不建议大家这样做。
6. 创建镜像
创建镜像的方法有三种:基于已有的镜像的容器的创建、基于本地模板导入、基于Dockerfile创建。
本篇主要介绍基于已有的镜像的容器的创建。
命令:
docker commit
参数说明:
-a , –author : 作者信息
-m , –meassage : 提交消息
-p , –pause=true : 提交时暂停容器运行
例如:
docker commit -a "linsurn" -m "add test.test" 0458a4468cbc linsurn/test
7. 迁出镜像
命令:
docker save -o .tar :
参数说明:
-o:设置存储压缩后的文件名称
说明:
可以使用docker save命令来迁出镜像,其中image可以为标签或ID。
8.载入镜像
命令:
docker load --input .tar 或 docker load < .tar
说明:
使用docker load命令可以载入镜像,其中image可以为标签或ID。
这将导入镜像及相关的元数据信息(包括标签等),可以使用docker images命令进行查看。
为了便于查看,我们先将hello-world镜像删除,再将刚才迁出的载入。
我们可以看到新载入的镜像仓库名和TAG都是none,不符合规范,所以我们可以对其打TAG
9.上传镜像
命令:
docker push <域名>//:
说明:
可以使用docker push命令上传镜像到仓库,默认上传到DockerHub官方仓库(需要登录,自行注册)。
现在我们登陆自己的docker hub就可以看到新上传的镜像啦。
关于镜像的操作就介绍这么多,下一篇将介绍容器的常用操作。