通过运行一个tomcat容器来记录下初学docker常用的几个命令---镜像篇
1.启动docker服务
[root@localhost ~]# service docker start
可以看到截图中启动命令重定向到了systemctl start docker.service,所以直接使用systemctl start docker.service也可以启动服务
2.查看当前宿主机的镜像列表(有哪些镜像可用)
[root@localhost ~]# docker images
REPOSITORY:表示该镜像来自哪个仓库。镜像保存在仓库,而仓库存在于Registry中,官方的Registry即Docker Hub;每个镜像仓库可以存放多个镜像,如ubuntu仓库包含了ubuntu14.04,13.04。 Docker Hub中有2种类型的仓库,用户仓库和顶层仓库,用户仓库的镜像都是由docker用户创建的,而顶层仓库则有官方管理。 用户仓库由用户名+仓库名组成,如jamtur01/tomcat; 顶层仓库只包含仓库名。 TAG:镜像的标签信息,为了区分同一个仓库中的不同镜像 IMAGE ID:镜像ID,唯一标识镜像 CREATED:创建时间,即镜像的最后更新时间 SIZE:镜像大小
3.搜索镜像(默认在官方仓库中搜索)
[root@localhost ~]# docker search hello-world
4.拉取镜像
[root@localhost ~]# docker pull hello-world
如果没有指定镜像的标签信息,则会默认下载latest标签
5.删除镜像
通过镜像ID删除
[root@localhost ~]#docker rmi ccc7a11d65b1 镜像ID
通过镜像标签
[root@localhost ~]#docker rmi helloworld:12 (如果不加标签,则默认删除标签为latest的镜像,如果没有该标签的镜像,就会报错)
注意:当有该镜像创建的容器存在时(只要存在容器,不管是否在运行),镜像文件默认是无法被删除的
6.使用tag命令添加标签
[root@localhost ~]# docker tag docker.io/hello-world helloworld:1.1.0
添加的标签实际起到了类似链接的作用,可以看到2个镜像的镜像ID是相同的,,实际指向同一个镜像文件,只是别名不同。
当同一个镜像拥有多个标签时,docker rmi命令只是删除该镜像多个标签中指定的标签,不会影响镜像文件,如果只剩1个镜像标签了,就会彻底删除该镜像。
强行删除,可使用-f参数(不推荐) docker rmi -f ccc7a11d65b1
7. inspect命令查看镜像详细信息
[root@localhost ~]# docker inspect docker.io/ubuntu
{ "Id": "sha256:ccc7a11d65b1b5874b65adb4b2387034582d08d65ac1817ebc5fb9be1baa5f88", 。。。。。。
}
使用-f 参数获取其中一项信息
[root@localhost ~]# docker inspect -f {{".Os"}} docker.io/ubuntu
linux
[root@localhost ~]#
8.使用docker build命令创建镜像
如果当前目录时Dockerfile所在目录
[root@localhost helloword]# docker build -t jamtur01/tomcat .
-t 表示为新镜像设置仓库和名称,本例中,仓库名为jamtur01,镜像名tomcat
. 表示使用当前目录中的Dockfile文件
如果当前目录不是Dockerfile文件所在目录,则需要指定Dockerfile文件所在目录,例如Dockerfile在/HMK/helloword/
[root@localhost HMK]# docker build -t hmk/tomcat:v1.0 /HMK/helloword/
也可以为镜像设置一个标签,如上面的 “hmk/tomcat:v1.0”,如果没有设置任何标签,docker将会自动为镜像设置一个latest标签